代码还能优化吗?
来源:7-8 编程练习
手撕包菜1
2019-10-06 13:56:15
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="1-7-8.js"></script>
</head>
<body onload="address()">
<form>
省份:
<select name="province" id="province" onchange="linkage()"></select>
市/区:
<select name="city" id="city" onchange="linkage()"></select>
</form>
</body>
</html>
function address(){
var province=document.getElementById("province");
var city=document.getElementById("city");
var arrayProvince=new Array("北京市","天津市","河北省","河南省");
var arrayCity1=new Array("朝阳区","西城区");
for(var i in arrayProvince){
selectAdd(province,arrayProvince[i],arrayProvince[i]);
}
for(var i in arrayCity1){
selectAdd(city,arrayCity1[i],arrayCity1[i]);
}
}
function selectAdd(obj,name,value){
obj.options.add(new Option(name,value));
}
function linkage(){
var arrayCity1=new Array("朝阳区","西城区");
var arrayCity2=new Array("西青区","武清区");
var arrayCity3=new Array("石家庄","邯郸市");
var arrayCity4=new Array("郑州市","开封市");
var province=document.getElementById("province");
var city=document.getElementById("city");
var pro=province.value;
if(pro=="北京市"){
city.length=0;
for(var i in arrayCity1){
selectAdd(city,arrayCity1[i],arrayCity1[i]);
}
}else if(pro=="天津市"){
city.length=0;
for(var i in arrayCity2){
selectAdd(city,arrayCity2[i],arrayCity2[i]);
}
}else if(pro=="河北省"){
city.length=0;
for(var i in arrayCity3){
selectAdd(city,arrayCity3[i],arrayCity3[i]);
}
}else{
city.length=0;
for(var i in arrayCity4){
selectAdd(city,arrayCity4[i],arrayCity4[i]);
}
}
}1回答
好帮手慕小班
2019-10-07
同学你好,在贴出代码中,html页面中,city不需要再添加onchange事件啦,因为在linkage事件在省份改变的时候,触发就可以啦,而不需要在市区的select中再次触发啦。
如贴出代码的运行,是不能正常选择市区的,因为当选择市区后触发onchange事件,造成了数据的刷新,就不会选择啦。
省份的添加完成的很棒,继续加油。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
相似问题