请老师点评一下,我总觉得还有瑕疵
来源:7-8 编程练习
Rayyp
2020-01-28 16:55:40
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="index.js"></script>
</head>
<body onload="address()">
<label>省份:</label>
<select id="ss" onchange="linkage()"></select>
<label>市/区:</label>
<select id="q" onchange="linkage()"></select>
</body>
</html>
function address(){
var SS = document.getElementById("ss");
var Q = document.getElementById("q");
selectAdd(SS,"北京市", "1");
selectAdd(SS,"天津市", "2");
selectAdd(SS,"河北省", "3");
selectAdd(SS,"河南省", "4");
selectAdd(Q,"朝阳区", "朝阳区");
selectAdd(Q,"西城区", "西城区");
}
function selectAdd(obj,name,value){
obj.options.add(new Option(name,value));
}
function linkage(){
var kk = document.getElementById("ss");
var MM=document.getElementById("q");
MM.options.length=0;
if(kk.value==1){
selectAdd(MM,"朝阳区","朝阳区");
selectAdd(MM,"西城区","西城区");
}else if(kk.value==2){
selectAdd(MM,"西青区", "西青区");
selectAdd(MM,"武清区", "武清区");
}else if(kk.value==3){
selectAdd(MM,"石家庄", "石家庄");
selectAdd(MM,"邯郸市", "邯郸市");
}else{
selectAdd(MM,"郑州市", "郑州市");
selectAdd(MM,"开封市", "开封市");
}
}
1回答
同学你好,代码的编写实现了题目功能的要求,但是还可以进行优化:
1、当点击省份后,发生改变后,调用linkage()函数进行联动市区就可以了,市区的选择框不需要调用linkage()函数。
具体如下:

2、对于js代码,对于重复的代码,可以直接定义省份和市区的数组,进行循环调用seectAdd()函数。具体如下:


同学可以参考如下同学的代码优化一下,具体链接如下:https://class.imooc.com/course/qadetail/187535
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题