html地区选择js,JavaScript实现省市区三级联动

本文介绍了如何使用JavaScript实现省市区三级联动的效果,通过创建三维数组并动态更新下拉菜单内容来实现。当用户在省份选择中切换时,城市选项会相应更新;进一步选择城市后,地区选项也会随之变化。这是一种基于二级联动的嵌套实现方式,而不是简单的使用三维数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript实现省市区三级联动

之前的文章中我们说到过如何利用JavaScript实现二级联动,这次我们来说说如何利用JavaScript实现三级联动。效果如图:

192173004_1_20200604120550756

HTML代码:请选择省份:请选择省份...... 请选择城市:请选择城市...... 请选择地区:请选择地区......

JavaScript代码:// 1.创建三维数组 var provinces=[]; provinces["江苏省"]=["南京市","无锡市","苏州市"]; provinces["浙江省"]=["杭州市","宁波市"]; provinces["安徽省"]=["合肥市","马鞍山市"]; var citys=[]; citys["南京市"]=["玄武区","雨花台区","鼓楼区","秦淮区","六合区"]; citys["无锡市"]=["滨湖区","惠山区","梁溪区"]; citys["苏州市"]=["姑苏区","吴江区"]; citys["杭州市"]=["西湖区","临安区","上城区"]; citys["宁波市"]=["江北区","江东区"]; citys["合肥市"]=["蜀山区","瑶海区"]; citys["马鞍山市"]=["花山区","雨山区"]; // 2.获取元素 var oprovince = document.getElementById('province'); var ocity = document.getElementById('city'); var oarea = document.getElementById('area'); for (province in provinces) { oprovince.add(new Option(province, province))//省份下拉菜单 } oprovince.onchange = function () {//省份下拉菜单内容改变时 执行的命令 var selectvalue = oprovince.value;//获取省份下拉菜单的值 ocity.innerHTML = '请选择城市......'; oarea.innerHTML = ' 请选择市区......'; for (provincename in provinces) {//遍历省份的名称 if (provincename == selectvalue) { for (cityname in provinces[provincename]) {//遍历城市名称 ocity.add(new Option(provinces[provincename][cityname], provinces[provincename][cityname])); } } } } ocity.onchange = function () { oarea.innerHTML = ' 请选择市区......'; var cityValue = ocity.value; for (i in citys) {//i是area数组的索引值(城市名称) if (i == cityValue) { for (j in citys[i]) { oarea.add(new Option(citys[i][j], citys[i][j])); } } } } // 3.向省份菜单添加选项 for(province in provinces){ oPro.add(new Option(province,province)) } // 4.根据省份选择城市 oPro.οnchange=function(){ var sel_val=oPro.value;//获取选择的省份 oCity.innerHTML = '请选择城市......'; oArea.innerHTML = ' 请选择市区......'; for(province in provinces){ if(province == sel_val){ for(cityname in provinces[province]){ oCity.add(new Option(provinces[province][cityname],provinces[province][cityname])) } } oCity.add(new Option()) } } oCity.οnchange=function(){ var sel_val2=oCity.value;//获取选择的省份 for(city in citys){ if(province == sel_val){ for(areaname in provinces[province]){ oArea.add(new Option(provinces[province][cityname],provinces[province][cityname])) } } oCity.add(new Option()) } }

总结一下: 其实实现三级联动效果和前面实现二级联动效果基本上没太大区别,相当于是两个二级联动的“嵌套”。误区就是认为二级联动利用二维数组,三级联动就是利用三维数组。但这里其实是使用了两个二级联动进行了嵌套。

视频解析链接:

https://www.bilibili.com/video/BV1st4y1y7xs/来源:https://www.icode9.com/content-1-704851.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值