城市三级联动

在这里插入图片描述

代码实现:
	// 城市数据
	cityData = [
		{
			"130000": {
				// data[i].name
				"name": "河北省",      // 一级
				// data[proviceValue].child
				"child": {
					"130100": {
						// children[j].name
						"name": "石家庄市",     // 二级
						"child": {             // 三级
							"130101": "市辖区",
							"130102": "长安区",
							"130104": "桥西区",
							. . .
						}
					},
					"130200": { . . . },
					. . .
				}
			},
			"140000": { . . . },
			. . .
		}
	]
	

	// HTML code
	<select id="pro"><option>--选择--</option></select>
	<select id="city"><option>--选择--</option></select>
	<select id="area"><option>--选择--</option></select>


	// JS code
	var pro = document.getElementById("pro");
	var city = document.getElementById("city");
	var area = document.getElementById("area");
	var pro_child, city_child;
	
	var data = cityData[0];		//  把 服务器返回的数据 赋值给
	for(var i in data){	
		var op = new Option(data[i].name, i);
		pro.appendChild(op);
	}
	pro.onchange = function(){
		var pro_value = this.value;
		pro_child = data[pro_value].child;
		for(var i in pro_child){
			var op = new Option(pro_child[i].name, i)
			city.appendChild(op);
		}
	}
	city.onchange = function(){
	var city_value = this.value;
	city_child = pro_child[city_value].child;
		for(var i in city_child){
			var op = new Option(city_child[i], i);
			area.appendChild(op);
		}
	}
	
逻辑图:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值