yingleiming

告诫自己即使再累,也不要忘记学习。成功没有捷径可走,只有一步接着一步走下去!

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

二级菜单联动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>二级菜单联动</title>
    <style>
        .hide{
            display: none;
        }
    </style>
</head>
<body>
    <select name="provs" id="provs" onchange="selCitiesByProv(this)">
        <option>-请选择-</option>
        <option>北京市</option>
        <option>天津市</option>
        <option>河北省</option>
    </select>
    <select name="cities" class="hide"></select>
    <script>
       var cities=[[],
//           0号下表没有元素
           [
               {"name":"东城区","value":101},
               {"name":"西城区","value":102},
               {"name":"海淀区","value":103},
               {"name":"朝阳区","value":104},
           ],
           [
               {"name":"河东区","value":201},
               {"name":"河西区","value":202},
               {"name":"南开区","value":203}
           ],
           [
               {"name":"石家庄市","value":301},
               {"name":"廊坊市","value":302},
               {"name":"保定市","value":303},
               {"name":"唐山市","value":304},
               {"name":"秦皇岛市","value":305}
           ],
       ];
       function selCitiesByProv(selProvs) {
//           获得selProvs的选中项的下标,保存在变量i中
        var i=selProvs.selectedIndex;
        console.log(i);
//        获得cities数组中i位置的子数组,保存在变量cs中
        var cs=cities[i];
        console.log(cs);
//        获得name属性为cities的元素,保存在变量seCities中
        var selCities=document.getElementsByName("cities")[0];
        console.log(selCities);
//        如果cs的元素个数为0,就将selCities的class设为hide
        if (cs.length==0){
            selCities.className="hide";
        }else{
            selCities.className="";
            selCities.innerHTML="";//创建文档片段对象,保存在frag中
            var frag=document.createDocumentFragment();
//            创建option元素,保存在变量opt中
            var opt=document.createElement("option");
            console.log(opt);
//            设置opt的内容为"-请选择-"
            opt.innerHTML="-请选择-";
//            设置opt的value为"-1"
            opt.value="-1";
//            将opt追加到frag中
            frag.appendChild(new Option("-请选择-"),-1);
//            遍历cs数组中的每个城市对象
            for (var i=0;i<cs.length;i++){
//                创建一个option元素,保存在变量opt中
                 opt=document.createElement("option");
//                 设置opt的内容为当前对象的name属性
                 opt.innerHTML=cs[i].name;
//                 设置opt的value为当前对象的value属性
                 opt.value=cs[i].value;
                 frag.appendChild(
                     new Option(cs[i].name,cs[i].value)
                 );//将opt追加到frag下
            }//遍历结束
            selCities.appendChild(frag);//将frag追加到selCities
        }

       }
    </script>





</body>
</html>

 

posted on 2017-11-14 15:44  yingleiming  阅读(106)  评论(0)    收藏  举报