纯js写省市区三级联动效果

效果图:

代码: 

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<title>三级联动</title>
	<style>
		* {
			margin: 0px;
			padding: 0px;
		}

	</style>
</head>

<body>
	省:<select name="" id="pre" style="width: 100px;" onchange="chg(this);">
		<option value="-1">请选择</option>
	</select> 市:
	<select name="" id="city" style="width: 100px;" onchange="chg2(this);">
	</select> 区:
	<select name="" id="area" style="width: 100px;">
		
	</select>


	<script>
		var pres = ["北京 ", "上海 ", "山东 "];
		var cities = [
			["东城 ", "海淀 ", "朝阳 "],
			["浦东 ", "徐汇 ", "嘉定 "],
			["青岛 ", "菏泽 ", "烟台 "]
		];
		var area = [
			[
				["东城一 ", "东城二 ", "东城三 "],
				["海淀一 ", "海淀二 ", "海淀三 "],
				["朝阳一 ", "朝阳二 ", "朝阳三 "],
			],
			[
				["浦东一 ", "浦东二 ", "浦东三 "],
				["徐汇一 ", "徐汇二 ", "徐汇三 "],
				["嘉定一 ", "嘉定二 ", "嘉定三 "],
			],
			[
				["青岛一 ", "青岛二 ", "青岛三"],
				["菏泽一 ", "菏泽二", "菏泽三"],
				["烟台一 ", "烟台二", "烟台三"],
			],
		];
        
		var preEle = document.getElementById("pre");
		var cityEle = document.getElementById("city");
		var areaEle = document.getElementById("area");
        /*省份遍历*/
		for (var i = 0; i < pres.length; i++) {
            /*给option添加值,value值,其中pres[i]为值,i为value值*/
			var op = new Option(pres[i], i);
			preEle.options.add(op);
		};
        
        /*点击省份*/
		var val01;
		function chg(obj) {

			val01 = obj.value;

			var citiesval = cities[val01];
			var areaval = area[val01][0];
            /*清空市区*/
			cityEle.options.length = 0;
			areaEle.options.length = 0;
            /*遍历市*/
			for (i = 0; i < citiesval.length; i++) {
				var op = new Option(citiesval[i], i);
				cityEle.options.add(op);
			}

            /*遍历区*/
			for (i = 0; i < areaval.length; i++) {
				var op = new Option(areaval[i], i);
				areaEle.options.add(op);
			}

		};

        /*点击市*/
		function chg2(obj) {
			var val = obj.value;
			var areav = area[val01][val];
			areaEle.options.length = 0;
            /*遍历区*/
			for (i = 0; i < areav.length; i++) {
				var op = new Option(areav[i], i);
				areaEle.options.add(op);
			}

		}

	</script>
</body>

</html>

 

转载于:https://my.oschina.net/u/3549294/blog/1836115

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值