老师,在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

同学你好!

代码完成正确,这里的代码相对比较简单,如果你想优化化可以参考一下思路:

  1. 一旦触发了linkage函数,肯定是有下拉框被选中,所以这里可以将最后的esle去掉

    http://img.mukewang.com/climg/5dfc464c09e0c24005450200.jpg

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

    http://img.mukewang.com/climg/5dfc465c09e3226210520362.jpg

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

0

0 学习 · 9666 问题

查看课程