jQuery JSON三级联动是指使用jQuery库来处理JSON数据,并实现三个层级之间的联动效果。通常用于表单选择框(select)的级联选择,例如省市区选择。
假设我们有以下JSON数据:
{
"provinces": [
{
"name": "广东省",
"cities": [
{
"name": "广州市",
"districts": ["天河区", "越秀区", "海珠区"]
},
{
"name": "深圳市",
"districts": ["南山区", "福田区", "宝安区"]
}
]
},
{
"name": "湖南省",
"cities": [
{
"name": "长沙市",
"districts": ["岳麓区", "芙蓉区", "天心区"]
}
]
}
]
}
HTML结构:
<select id="province">
<option value="">请选择省份</option>
</select>
<select id="city" disabled>
<option value="">请选择城市</option>
</select>
<select id="district" disabled>
<option value="">请选择区县</option>
</select>
jQuery代码:
$(document).ready(function() {
// 加载省份数据
$.getJSON('data.json', function(data) {
$.each(data.provinces, function(index, province) {
$('#province').append($('<option>').text(province.name).attr('value', province.name));
});
});
// 省份选择事件
$('#province').change(function() {
var provinceName = $(this).val();
if (provinceName) {
$('#city').empty().append($('<option>').text('请选择城市').attr('value', ''));
$('#district').empty().append($('<option>').text('请选择区县').attr('value', ''));
$('#city').prop('disabled', false);
} else {
$('#city').empty().append($('<option>').text('请选择城市').attr('value', ''));
$('#district').empty().append($('<option>').侯选区县').attr('value', ''));
$('#city').prop('disabled', true);
$('#district').prop('disabled', true);
}
});
// 城市选择事件
$('#city').change(function() {
var provinceName = $('#province').val();
var cityName = $(this).val();
if (cityName) {
$('#district').empty().append($('<option>').text('请选择区县').attr('value', ''));
$('#district').prop('disabled', false);
$.each(data.provinces, function(index, province) {
if (province.name === provinceName) {
$.each(province.cities, function(index, city) {
if (city.name === cityName) {
$.each(city.districts, function(index, district) {
$('#district').append($('<option>').text(district).attr('value', district));
});
}
});
}
});
} else {
$('#district').empty().append($('<option>').text('请选择区县').attr('value', ''));
$('#district').prop('disabled', true);
}
});
});
通过以上方法,可以有效地解决jQuery JSON三级联动中可能遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云