请老师点评一下,我总觉得还有瑕疵

来源: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回答

好帮手慕酷酷

2020-01-31

同学你好,代码的编写实现了题目功能的要求,但是还可以进行优化:

1、当点击省份后,发生改变后,调用linkage()函数进行联动市区就可以了,市区的选择框不需要调用linkage()函数。

具体如下:

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

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

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

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

同学可以参考如下同学的代码优化一下,具体链接如下:https://class.imooc.com/course/qadetail/187535 

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

0

0 学习 · 9666 问题

查看课程