老师,在js里效果是完成了,但是想优化代码怎么修改合适呢,想到的头绪现在是注释的那个代码
来源:7-8 编程练习
慕用6234762
2019-12-19 23:14:33
function address(){
/*请在此补充代码*/
var shengfen = document.getElementById("shengfen");
var city = document.getElementById("city");
//创建省份数组
var shengfenArray=new Array("北京市","天津市","河北省","河南省");
//循环数组,添加条目栏
for (var i = 0; i < shengfenArray.length; i++) {
selectAdd(shengfen,shengfenArray[i],shengfenArray[i]);
}
}
function selectAdd(obj,name,value){
/*请在此补充代码*/
obj.options.add(new Option(name,value));
}
function linkage(){
/*请在此补充代码*/
var shengfen = document.getElementById("shengfen");
var city = document.getElementById("city");
//获取到省份的value值
var shengfen1 = shengfen.value;
//创建城区数组
var beijinArray=["朝阳区","西城区"];
var tianjinArray=["西青区","武青区"];
var hebeiArray=["石家庄","邯郸市"];
var henanArray=["郑州市","开封市"];
//判断省份
if(shengfen1=="北京市"){
city.options.length=0;
for (var i = 0; i < beijinArray.length; i++) {
selectAdd(city,beijinArray[i],beijinArray[i])
}
}else if(shengfen1=="天津市"){
city.options.length=0;
for (var i = 0; i < tianjinArray.length; i++) {
selectAdd(city,tianjinArray[i],tianjinArray[i])
}
}else if(shengfen1=="河北省"){
city.options.length=0;
for (var i = 0; i < hebeiArray.length; i++) {
selectAdd(city,hebeiArray[i],hebeiArray[i])
}
}else if(shengfen1=="河南省"){
city.options.length=0;
for (var i = 0; i < henanArray.length; i++) {
selectAdd(city,henanArray[i],henanArray[i])
}
}
else{
city.options.length=0;
}
// var shengfenArray=new Array("北京市","天津市","河北省","河南省");
// var cityArray=new Array(beijingArray,tianjinArray,hebeiArray,henanArray);
// for (var i = 0; i < shengfenArray.length; i++) {
// if(shengfenArray[i]==)
// }
}
1回答
好帮手慕柯南
2019-12-20
同学你好!
代码完成正确,这里的代码相对比较简单,如果你想优化化可以参考一下思路:
一旦触发了linkage函数,肯定是有下拉框被选中,所以这里可以将最后的esle去掉

可以将省份,城市的数据放在函数的外面,这样在函数中就可以少写一点代码

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题