原生js简单的省市联动

10 篇文章 0 订阅
<h2>省市级联下拉</h2>
		        <select id="provinces" οnchange="changeCity(this.value)">
			<option value="-1">--请选择--</option>
		</select>
		<select id="cities">
			<option value="-1">--请选择--</option>
		</select>
		<script>
			var provinces=['北京','天津','四川'];
			var cities=[
				['东城区','西城区'],
				['河东区','和平区'],
				['成都市','绵阳市']
			];
			var fragment=document.createDocumentFragment();  //创建一个文档片段对象,使用它可以减少dom渲染的次数,提高效率
			for (var i=0;i<provinces.length;i++) {
				var option=document.createElement('option'); //创建元素节点
				option.setAttribute('value',i);   //为创建的元素节点设置属性值
				option.innerHTML=provinces[i];
				fragment.appendChild(option);     //将创建的元素节点追加到fragment
			}
			document.getElementById('provinces').appendChild(fragment);
			function changeCity(optionValue){
				if(optionValue==-1){
					return;
				}
				//删除下拉框中已有的城市
				var citiesSelect=document.getElementById('cities');
				while(citiesSelect.children.length>1){
					citiesSelect.removeChild(citiesSelect.lastElementChild); //从最后一个元素删除,是因为从第一个元素删除可能出现问题
				}
				var cityArr=cities[optionValue];
				var fragment=document.createDocumentFragment();
				for (var i=0;i<cityArr.length;i++) {
					var option=document.createElement('option');
					option.setAttribute('value',i);
					option.innerHTML=cityArr[i];
					fragment.appendChild(option);
				}
				citiesSelect.appendChild(fragment);
			}
			
		</script>
		

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LLL_LH

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

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

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

打赏作者

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

抵扣说明:

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

余额充值