js 实现三级联动

JavaScript是现代互联网开发不可或缺的技术之一,它与网页设计紧密结合,常常用来实现网页的动态交互功能。其中三级联动是比较常见的功能,比如实现省、市、区的联动选择。实现三级联动的核心是使用JavaScript根据用户的选择动态生成选项,下面将通过举例说明如何实现一个省、市、区的三级联动选择。

首先,需要在页面中添加三个下拉框,分别对应省、市、区,如下所示:

<select name="province" id="province">
<option value=""></option>
<option value="北京市">北京市</option>
<option value="上海市">上海市</option>
<option value="广东省">广东省</option>
</select>
<select name="city" id="city">
<option value=""></option>
</select>
<select name="area" id="area">
<option value=""></option>
</select>

上面代码中,省级下拉框中包含了三个省份供用户选择,而后两个下拉框暂不包含任何选项。

接下来,需要写js代码来实现三级联动。首先,给省级下拉框绑定change事件:

let province = document.getElementById('province');
province.onchange = function() {
// 动态生成市级选项
}

当用户选择省份时,上面的代码会触发change事件,接下来需要根据选择的省份动态生成市级选项。下面是实现动态生成市级选项的代码:

let province = document.getElementById('province');
let city = document.getElementById('city');
province.onchange = function() {
city.innerHTML = '';
let options = [];
if (province.value === '北京市') {
options = ['东城区', '西城区', '朝阳区', '海淀区', '丰台区', '门头沟区'];
} else if (province.value === '上海市') {
options = ['黄浦区', '卢湾区', '静安区', '徐汇区', '长宁区', '普陀区'];
} else if (province.value === '广东省') {
options = ['广州市', '深圳市', '珠海市', '汕头市', '韶关市', '佛山市'];
}
for (var i = 0; i < options.length; i++) {
lrt option = document.createElement('option');
option.value = options[i];
option.text = options[i];
city.add(option);
}
}

上面的代码首先清空了市级选项,然后根据用户选择的省份动态生成市级选项,最后将生成的选项添加到市级下拉框中。

最后,需要根据用户选择的市级选项动态生成区级选项。下面是实现动态生成区级选项的代码:

let province = document.getElementById('province');
let city = document.getElementById('city');
let area = document.getElementById('area');
province.onchange = function() {
city.innerHTML = '';
area.innerHTML = '';
let cityOptions = [];
if (province.value === '北京市') {
cityOptions = ['东城区', '西城区', '朝阳区', '海淀区', '丰台区', '门头沟区'];
} else if (province.value === '上海市') {
cityOptions = ['黄浦区', '卢湾区', '静安区', '徐汇区', '长宁区', '普陀区'];
} else if (province.value === '广东省') {
cityOptions = ['广州市', '深圳市', '珠海市', '汕头市', '韶关市', '佛山市'];
}
for (var i = 0; i < cityOptions.length; i++) {
let option = document.createElement('option');
option.value = cityOptions[i];
option.text = cityOptions[i];
city.add(option);
}
area.innerHTML = '';
};
city.onchange = function() {
area.innerHTML = '';
let areaOptions = [];
if (city.value === '东城区') {
areaOptions = ['交道口街道', '东华门街道', '景山街道', '东四街道', '东直门街道'];
} else if (city.value === '西城区') {
areaOptions = ['德胜街道', '什刹海街道', '西长安街街道', '广安门街道', '白纸坊街道'];
} else if (city.value === '朝阳区') {
areaOptions = ['三里屯街道', '麦子店街道', '亚运村街道', '大屯街道', '工体街道'];
}
for (var i = 0; i < areaOptions.length; i++) {
let option = document.createElement('option');
option.value = areaOptions[i];
option.text = areaOptions[i];
area.add(option);
}
};

上面的代码首先清空了区级选项,然后根据用户选择的市级选项动态生成区级选项,最后将生成的选项添加到区级下拉框中。

至此,一个省、市、区的三级联动选择就实现了。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值