本帖最后由 吴小东 于 2012-8-17 19:01 编辑
哥们,你这一开始定义数组的时候就出了问题。我自己写了一个级联,希望能对你有帮助,
javascript 虽然是弱语言但是对书写方面还是很要求规范的- <script type="text/javascript">
- var list = new Array("北京市","河北省","内蒙古");
- var listBeiJing = ['东城区','西城区','海淀区','朝阳区','大兴区'];
- var listHeBei = ['石家庄','邯郸市','邢台市','保定市','廊坊市'];
- var listNeiMeng = ['呼市','包头市','赤峰市','鄂尔多斯','东胜'];
-
-
- var list1 = new Array(); //把前面4个list 合并为一个 list1
- list1 = {北京市:listBeiJing,河北省:listHeBei,内蒙古:listNeiMeng}
-
- function addSheng() //加载页面的时候,把省份的信息加到一级下拉菜单中
- {
- var sheng = document.getElementById("sheng");
- for(var i in list){
- sheng.add(new Option(list[i],list[i])); //返回值和显示值设置为一样
- }
- }
- function addShi(sheng)
- {
- alert(sheng);
- var shi = document.getElementById("shi");
- shi.length = 0;
- for(var i in list1[sheng]) //这里每次得到的省份值所对应的数组,例如北京市 那么这里的 list1["北京市"] 就相当于 listBeiJing
- {
- shi.add(new Option(list1[sheng][i],list1[sheng][i])); //然后遍历加载到二级菜单
- }
- }
-
- </script>
- <body onload="addSheng()">
- <select id="sheng" onchange="addShi(this.value)"> //当每一次省份的菜单改变就调用一次这个方法,
- // 把value也就是选中的省份作为参数传给方法addShi(sheng)
- <option>--请选择省份--</option>
- </select>
- <select id="shi">
- </select>
- </body>
复制代码 刚吃了两口饭 想起没有写注释 来补上 |