// Ajax获取数据,本地json文件 function getData() { $.ajax({ url: './json/third-level-address.json', // 本地json文件位置 type: 'get', // ajax 获取方式 async: false, // 是否异步 success: function (data) { // 成功,返回data if (data == "error") { alert("系统错误"); return; } dataJson = data; } }); return dataJson; //返回json数据 } // 获取province(省) function getCountry() { var data = getData(); // 获取json数据 var options = ""; //定义初始选项 for (var i in data) { //循环json数据 options += ""; // 给选项(options) 添加属性value以及显示的数据(城市名称) $("#province").html(options); // 通过jQuery 将选项添加到下拉框(province) } } // 获取City(城市) function getCity(countryCode) { // 参数 :countryCode 是json 数据中省份的 Code var data = getData(); // 获取json数据 $('#city').empty(); // 先置空city的选项,无所谓 var options = ""; //定义初始选项 for (var i in data) { //循环json数据 for (let j = 0; j < data[i].children.length; j++) { // 这个循环是判断省份下面城市的数量,不循环,获取不到其他的城市,只能获取一个 if (countryCode && countryCode == data[i].code) { // 通过Code 判断来显示城市 options += ""; // 这里注意:children[j],一定要是j,如果填写[i],会超过城市的数量(数组越界)会报错!!! } } $("#city").html(options); // 通过jQuery 将选项添加到下拉框(city) } } // 获取Area(区域) function getArea(cityCode) { // 参数 :cityCode 是json 数据中市的 Code var data = getData(); // 获取json数据 var options = ""; // 定义初始选项 for (var i in data) { //循环json数据 for (let j = 0; j < data[i].children.length; j++) { // 这个循环是判断省份下面城市的数量,不循环,获取不到其他的城市,只能获取一个 for (let k = 0; k < data[i].children[j].children.length; k++) { // 这里的循环是获取城市城市下面区域的数量长度,同上,否则只会获取一个数据 if (cityCode && cityCode == data[i].children[j].code) { // 通过Code 判断来显示区域 options += ""; // 这里的children[j].children[k]同上,否则数组越界报错 } } } $("#area").html(options); // 通过jQuery 将选项添加到下拉框(area) } }