请问为什么第一次点的是北京,没点其他地方前,第二栏就会一直显示所有的区?怎么改?

请问为什么第一次点的是北京,没点其他地方前,第二栏就会一直显示所有的区?怎么改?

var arr=["北京市","天津市","河北省","河南省"];
    var arr1=["朝阳区","西城区"];
    var arr2=["西青区","武清区"];
    var arr3=["石家庄","邯郸市"];
    var arr4=["郑州市","开封市"];
function address(){
    	/*请在此补充代码*/
    var province=document.getElementById("province");
    var city=document.getElementById("city");
    selectAdd(province,arr);
    selectAdd(city,arr1);
    selectAdd(city,arr2);
    selectAdd(city,arr3);
    selectAdd(city,arr4);
}
function selectAdd(obj,arr){
		/*请在此补充代码*/  
		for(var i in arr){
		    obj.options.add(new Option(arr[i],arr[i]));
		}
}
function linkage(){
// 	/*请在此补充代码*/ 
	var province=document.getElementById("province");
	var city=document.getElementById("city");
	var pro=province.value;
	var finalarr=[];
	if(pro==arr[0]){
	    finalarr=arr1;
	}else if(pro==arr[1]){
	    finalarr=arr2;
	}else if(pro==arr[2]){
	    finalarr=arr3;
	}else if(pro==arr[3]){
	    finalarr=arr4;
	}
	city.options.length=0;
	selectAdd(city,finalarr);
}
<html>
<head>
    <meta charset="UTF-8">
<title>Document</title>
    <script type="text/javascript" src="index.js"></script>
</head>
<body onload="address()">
<form>
 省份:
<!--  请在此补充代码 -->
<select id="province" onchange="linkage()"></select>
 市/区:
 <!--  请在此补充代码 -->
 <select id="city" ></select>
</form>
</body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,按照老师之前的写法进行测试是正确的。

http://img1.sycdn.imooc.com//climg/5e74ae6f09635bb706780223.jpghttp://img1.sycdn.imooc.com//climg/5e74ae8109cb3d5c04720243.jpg

同学可以检查一下自己是否更改了代码哦。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 慕工程331170 提问者 #1
    本来一共有八个区,像您写的这样不就一共只有两个了吗?那我点天津市的时候,不也只能显示北京的两个区吗? 我想问的是,我运行代码,第一次点的如果是天津市,河北省,河南省,第二行都会出现各自的两个管辖区,这个是对的,但是如果第一次点的是北京,后面那一栏的八个区就全显示出来了,请问这个怎么解决?
    2020-03-21 00:39:37
  • 慕工程331170 提问者 #2
    本来一共有八个区,像您写的这样不就一共只有两个了吗?那我点天津市的时候,不也只能显示北京的两个区吗? 我想问的是,我运行代码,第一次点的如果是天津市,河北省,河南省,第二行都会出现各自的两个管辖区,这个是对的,但是如果第一次点的是北京,后面那一栏的八个区就全显示出来了,请问这个怎么解决?
    2020-03-21 00:39:40
  • 好帮手慕小脸 回复 提问者 慕工程331170 #3
    你可能没有理解老师意思,像老师这样写的话就是每个市对应每个区。就不会出现同学说的第一次点击北京市会出现所有区。 如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2020-03-21 10:23:29
好帮手慕阿慧 2020-03-19 16:29:40

同学你好,在address方法中,我们把北京市下的区添加到第二栏就可以了。

修改如下:

http://img1.sycdn.imooc.com//climg/5e732d6d091faaa805590249.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕工程331170 #1
    我把所有的区放在一组里面也没有用
    2020-03-20 17:28:49
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师