用js实现三级联动

今天小编带你了解一下三级联动,所谓三级联动就是为了完成一些选择权利。下面跟随小编的脚步带你走进三级联动:

html代码:
<select name="sheng" id="sheng">
			<!-- <option value="">请选择</option> -->
			<!-- <option value="0">北京</option>
			<option value="1">河南</option>
			<option value="2">山西</option>
			<option value="3">湖北</option> -->
		</select>
		<select name="shi" id="shi">
			<!-- <option value="0,1">昌平</option>
			<option value="0,2">延庆</option>
			<option value="0,3">海淀</option>
			<option value="0,4">朝阳</option> -->
		</select>
		<!-- <select name="shi2">
			<option value="1,1">南阳</option>
			<option value="1,2">洛阳</option>
			<option value="1,3">安阳</option>
			<option value="1,4">郑州</option>
		</select> -->
		<select name="xian" id="xian">
			<!-- <option value ="0,2,1">大榆树镇</option>
			<option value ="0,2,2">北科院</option> -->
		</select>
js代码:
<script type="text/javascript">
			var address = {
				// 0 省份
				"0":{
					"1":"北京",
					"2":"河南",
					"3":"黑龙江"
				},
				"0,1":{
					"4":"昌平区",
					"5":"延庆区",
					"6":"海淀区"
				},
				"0,1,4":{
					"7":"回龙观",
					"8":"霍营"
				},
				"0,1,5":{
					"9":"大榆树镇",
					"10":"延庆城区"
				},
				"0,1,6":{
					"11":"海淀五路居",
					"12":"田村"
				},
				"0,2":{
					"13":"郑州",
					"14":"南阳",
					"15":"安阳"
				},
				"0,2,13":{
					"16":"二七区",
					"17":"金水区",
					"18":"上街区"
				},
				"0,2,14":{
					"19":"邓州",
					"20":"管城区",
					"21":"方城"
				}
			}
			
			// 获取所有元素   省 市 县
			var sheng = document.getElementById("sheng")
			var shi = document.getElementById("shi")
			var xian = document.getElementById("xian")
			
			//a- 遍历展示省的数据
			// 1- 定义一个变量名为 strOption1 用于存储字符串 并做字符串的拼接
			var strOption1 = "<option>请选择</option>"
			// 3- 将所有的数据遍历展示option中
			for(var i in address[0]){
				console.log(i)
				console.log(address[0][i])
				// 字符串拼接 将 对象中的 键与值拼接到option中
				strOption1 += '<option value="0,'+i+'">'+address[0][i]+'</option>'
			}
			console.log(strOption1)
			// 2- 将字符串类型的标签数据存储到省select标签中
			sheng.innerHTML = strOption1
			
			// b- 遍历展示市的数据
			sheng.onchange = function(){
				// 1- 定义一个变量名为 strOption2 用于存储字符串 并做字符串的拼接
				var strOption2 = "<option>请选择</option>"
				// console.log(this.value)
				// 3- 将所有的数据遍历展示option中
				for(var j in address[this.value]){
					console.log(j)
					console.log(address[this.value][j])
					strOption2 += '<option value="'+this.value+','+j+'">'+address[this.value][j]+'</option>'
				}
				// 2- 将字符串类型的标签数据存储到省select标签中
				shi.innerHTML = strOption2
			}
			
			// c-遍历数据展示到县
			// 给市绑定onchange事件 当事件出发时执行县的数据遍历
			shi.onchange = function(){
				// 1- 定义一个变量名为 strOption3 用于存储字符串 并做字符串的拼接
				var strOption3 = "<option>请选择</option>"
				// 3- 将所有的数据遍历展示option中
				for(var k in address[this.value]){
					console.log(address[this.value])
					console.log(address[this.value][k])
					strOption3+='<option value="'+this.value+','+k+'">'+address[this.value][k]+'</option>'
				}
				// 2- 将字符串类型的标签数据存储到省select标签中
				xian.innerHTML = strOption3
			}
		</script>
css样式:
你们可以自己看着来

总结:在这里插入图片描述

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱敲码的老余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值