HTML/Html-practice/Ajax/基于jQuery的AJAX实现三级联动菜单/js/index.js
2023-05-01 22:47:22 +08:00

58 lines
3.0 KiB
JavaScript

// 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 = "<option value='0'>--请选择--</option>"; //定义初始选项
for (var i in data) { //循环json数据
options += "<option value='" + data[i].code + "' selected>" + data[i].name + "</option>"; // 给选项(options) 添加属性value以及显示的数据(城市名称)
$("#province").html(options); // 通过jQuery 将选项添加到下拉框(province)
}
}
// 获取City(城市)
function getCity(countryCode) { // 参数 :countryCode 是json 数据中省份的 Code
var data = getData(); // 获取json数据
$('#city').empty(); // 先置空city的选项,无所谓
var options = "<option value='0'>--请选择--</option>"; //定义初始选项
for (var i in data) { //循环json数据
for (let j = 0; j < data[i].children.length; j++) { // 这个循环是判断省份下面城市的数量,不循环,获取不到其他的城市,只能获取一个
if (countryCode && countryCode == data[i].code) { // 通过Code 判断来显示城市
options += "<option value='" + data[i].children[j].code + "' selected>" + data[i].children[j].name + "</option>"; // 这里注意:children[j],一定要是j,如果填写[i],会超过城市的数量(数组越界)会报错!!!
}
}
$("#city").html(options); // 通过jQuery 将选项添加到下拉框(city)
}
}
// 获取Area(区域)
function getArea(cityCode) { // 参数 :cityCode 是json 数据中市的 Code
var data = getData(); // 获取json数据
var options = "<option value='0'>--请选择--</option>"; // 定义初始选项
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 += "<option value='" + data[i].children[j].children[k].code + "' selected>" + data[i].children[j].children[k].name + "</option>"; // 这里的children[j].children[k]同上,否则数组越界报错
}
}
}
$("#area").html(options); // 通过jQuery 将选项添加到下拉框(area)
}
}