javascript下拉框省市区|二级联动、三级联动

2022-09-08 13:28:34
<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8" />
	<title></title>
	<!-- 注意:在写的时候注意有的地方要有分号;,还有有的地方是锁定id位置还是id位置的值。 -->
	<!-- 调试了很久,第三个下拉框一直锁定不到,原因就在于第二个下拉框会触发第三个下拉框显示,但是第二个下拉框没有给定id值,就算设置了onChange(),也没有用还是定位不到。 -->
</head>
<script>
	function $(id) {
		return document.getElementById(id);
	}
	//数组
	var shens = [
		["", "点击选择"],
		["sichuan", "四川"],
		["shanxi", "陕西"]
	]
	//json
	var shis = {
		"sichuan": [["", "点击选择"],["chengdu", "成都"], ["mianyang", "绵阳"]],
		"shanxi": [["", "点击选择"],["xian", "西安"], ["xianyang", "咸阳"]]
	}

	var xians = {
		"chengdu": [["", "点击选择"],["jinjiang", "锦江区"], ["wuhou", "武侯区"]],
		"mianyang": [["", "点击选择"],["xianyou", "仙游区"], ["fucheng", "涪城区"]],
		"xian": [["", "点击选择"],["weiyang", "未央区"], ["changan", "长安区"]],
		"xianyang": [["", "点击选择"],["qindu", "秦都区"], ["weicheng", "渭城区"]]
	}

	function addShen() {
		for (var i in shens) {
			// console.log(i);
			var shen = shens[i];
			// console.log(shen);
			var opt = "<option value=" + shen[0] + ">" + shen[1] + "</option>"
			var selectShen = $("selectshen").innerHTML += opt;
		}
	}
	function addShi() {
		var shenKey = $("selectshen").value;
		// console.log(shenKey)
		var myshis = shis[shenKey];
		// console.log(myshis)
		var spanshi = $("spanshi");
		// console.log(spanshi)
		// 注意:这里新建一个select一定要给id值,不然第三个下拉框spanxian找不到位置。
		// 这是在script里面直接建立下拉框的语句
		var html = "<select id=\"cxk\" onChange='addXian()'>"
		// console.log(html)
		for (var i in myshis) {
			// console.log(i)
			html += "<option value=" + myshis[i][0] + ">" + myshis[i][1] + "</option>"
			// html+=`<option value=`+myshis[i][0]+`
			// >`+myshis[i][1]+`
			// </option>
			// `
		}
		html += "</select>"
		spanshi.innerHTML = html;
	}
	function addXian() {
		var shisKey = $("cxk").value;
		// console.log(xiansKey)
		var myxians = xians[shisKey];
		var spanxian = $("spanxian");
		var html = "<select>"
		// console.log(myxians)
		for (var j in myxians) {
			// console.log(j)
			html+="<option value="+myxians[j][0]+">"+myxians[j][1]+"</option>"
		}
		html+="</select>"
        spanxian.innerHTML=html;

	}
</script>

<body onload="addShen()">
	<div>
		<select id="selectshen" onchange="addShi()">
			<!-- <option></option> -->
		</select>
		<span id="spanshi"></span>
		<span id="spanxian"></span>
	</div>
</body>

</html>
  • 作者:echo_千
  • 原文链接:https://blog.csdn.net/weixin_46499784/article/details/123547053
    更新时间:2022-09-08 13:28:34