中国城市数据表JS插件
网上得到一个中国城市的json,就有个想法做成我的中国城市选项表js插件。
使用方法:
在引用jQuery后,加入
<script type="text/javascript" src="http://files.cnblogs.com/updateofsimon/city.js"></script>
就可以在
<div id="city_list"></div>
产生中国城市选择表,你可以为它自定义CSS
实际效果(涉及跨域加载速度较慢):
插件源码:
function City() { this.url = "http://files.cnblogs.com/updateofsimon/cityname.js"; this.area = null; this.html = ‘‘; this.city_json = ‘‘; } City.prototype = { init : function() { $(‘#city_list‘).html(‘<select id="prov"></select><select style="display: none" id="city"></select><select style="display: none" id="area"></select>‘); var self = this; $.getJSON("http://query.yahooapis.com/v1/public/yql", { q : ‘select * from json where url=\"http://files.cnblogs.com/updateofsimon/cityname.js"‘, format : "json" }, function(data) { self.city_json = data.query.results.json; self._prov(); }); $(‘#prov‘).unbind(‘change‘).bind(‘change‘, function() { self._city(); }); $(‘#city‘).unbind(‘change‘).bind(‘change‘, function() { self._area(); }); }, _prov : function() { var self = this; self.html = "<option value=‘‘>请选择-省-</option>"; $(self.city_json.citylist).each(function(i, prov) { self.html += "<option value=‘" + prov.p + "‘>" + prov.p + "</option>"; }); $(‘#prov‘).html(self.html); }, _city : function() { var self = this; var prov_id = $(‘#prov‘).get(0).selectedIndex - 1; if (prov_id < 1 || typeof (self.city_json.citylist[prov_id].c) == "undefined") { $(‘#city‘).empty().hide(); $(‘#area‘).empty().hide(); return; } $(‘#city‘).empty().show(); self.html = "<option value=‘‘>请选择-市-</option>"; $.each(self.city_json.citylist[prov_id].c, function(i, city) { self.html += "<option value=‘" + city.n + "‘>" + city.n + "</option>"; }); $(‘#city‘).html(self.html); self._area(); }, _area : function() { var self = this; var prov_id = $(‘#prov‘).get(0).selectedIndex - 1, city_id = $(‘#city‘).get(0).selectedIndex - 1; if (prov_id < 1 || city_id < 1 || typeof (self.city_json.citylist[prov_id].c[city_id].a) == "undefined") { $(‘#area‘).empty().hide(); return; }; $(‘#area‘).empty().show(); self.html = "<option value=‘‘>请选择-区-</option>"; $.each(self.city_json.citylist[prov_id].c[city_id].a, function(i, area) { self.html += "<option value=‘" + area.s + "‘>" + area.s + "</option>"; }); $(‘#area‘).html(self.html); } }; $(function() { new City().init(); });
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。