一个动态的2级菜单

downice 2013-12-23 09:56:32
<script type="text/javascript">
var ds1 = "灯类型,1;电视,2;窗帘,3;热水器,4;安防,5;门控,6;空调,7;排风扇,8;排水,9;燃气阀,10;水阀,11;家庭影院,12;冰箱,13;地暖,14;人体健康,15";
var ds2 = "吊顶顶灯,1,01;墙壁灯,2,01;地灯,3,01;书架灯,4,01;床头灯,5,01;窗纱,6,03;窗帘,7,03;窗户,8,03";
var arrds1 = new Array();
var arrTemp = ds1.split(";");
var i;
var objS = document.getElementById("ds1id");
var objD = document.getElementById("ds2id");
for(i=0;i<arrTemp.length;i++){
arrds1[i] = arrTemp[i].split(",");
}
var arrds2 = new Array();
arrTemp = ds2.split(";");
for(i=0;i<arrTemp.length;i++){
arrds2[i] = arrTemp[i].split(",");
}
function changePort(){
removeOptions(objD);
var index = objS.selectedIndex;
var codeS = objS.options[index].value;
var j = 0;
for(i=0;i<arrds2.length;i++){
if(arrds2[i][2]==codeS){
objD.options[j] = new Option(arrds2[i][0],arrds2[i][1]);
j++;
}
if(j==0)
objD.options[0] = new Option("没有可选项","0");
}
}
function removeOptions(obj){
for(i=0;i<obj.options.length;i++)
obj.options[i] = null;
}
function getOptions(){
var j = 0;
for(i=0;i<arrds1.length;i++){
objD.options[j] = new Option(arrds1[i][0],arrds1[i][1]);
j++;
}
if(j==0)
objD.options[0] = new Option("没有可选项","0");
}
</script>



<html>
<body>
<select id="ds1id" onclick="getOptions()" onChange="changePort()"></select>
<select id="ds2id"></select>
</body>
</html>


代码无效,高人给看看哪里有问题,此段js摘自网上某个联级select的,根据理解改的。但是无效。求高人指点,不甚感激。
...全文
75 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
downice 2013-12-23
  • 打赏
  • 举报
回复
引用 3 楼 u011461314 的回复:
可以,先在1上点点。<select id="ds1id" onclick="getOptions()" onChange="changePort()"></select> 1就出来了。
是的,至少是能出来了。重新测试了下,复制,黏贴没什么用。。好吧。谢谢了。分先给了。
zhjdg 2013-12-23
  • 打赏
  • 举报
回复
可以,先在1上点点。<select id="ds1id" onclick="getOptions()" onChange="changePort()"></select> 1就出来了。
downice 2013-12-23
  • 打赏
  • 举报
回复
引用 1 楼 u011461314 的回复:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<select id="ds1id" onclick="getOptions()" onChange="changePort()"></select>
<select id="ds2id"></select>
<script type="text/javascript">
            var ds1 = "灯类型,1;电视,2;窗帘,3;热水器,4;安防,5;门控,6;空调,7;排风扇,8;排水,9;燃气阀,10;水阀,11;家庭影院,12;冰箱,13;地暖,14;人体健康,15;";            
            var ds2 = "吊顶顶灯,1,01;墙壁灯,2,01;地灯,3,01;书架灯,4,01;床头灯,5,01;窗纱,6,03;窗帘,7,03;窗户,8,03;";
            var arrds1 = new Array();
            var arrTemp = ds1.split(";");
            var i;
            var objS = document.getElementById("ds1id");
            var objD = document.getElementById("ds2id");
            for(i=0;i<arrTemp.length;i++){
                 arrds1[i] = arrTemp[i].split(",");
            }
            var arrds2 = new Array();
            arrTemp = ds2.split(";");
            for(i=0;i<arrTemp.length;i++){
                 arrds2[i] = arrTemp[i].split(",");
            }
            function changePort(){
                removeOptions(objD);
                 var index = objS.selectedIndex;
                 var codeS = objS.options[index].value;
                 var j = 0;
                 for(i=0;i<arrds2.length;i++){
                  if(arrds2[i][1]==codeS){
                       objD.options[j] = new Option(arrds2[i][0],arrds2[i][2]);
                       j++;
                  }
                  if(j==0)
                       objD.options[0] = new Option("没有可选项","0");
                 }
        }
        function removeOptions(obj){
             for(i=0;i<obj.options.length;i++)
                  obj.options[i] = null;
        }
        function getOptions(){
            var j = 0;
            for(i=0;i<arrds1.length;i++){
                   objS.options[j] = new Option(arrds1[i][0],arrds1[i][1]);
                   j++;
              }
              if(j==0)
                   objD.options[0] = new Option("没有可选项","0");
        }
</script>

</body>
</html>
这是可以用的么? 测试了下 还是没用啊。。
zhjdg 2013-12-23
  • 打赏
  • 举报
回复
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<select id="ds1id" onclick="getOptions()" onChange="changePort()"></select>
<select id="ds2id"></select>
<script type="text/javascript">
            var ds1 = "灯类型,1;电视,2;窗帘,3;热水器,4;安防,5;门控,6;空调,7;排风扇,8;排水,9;燃气阀,10;水阀,11;家庭影院,12;冰箱,13;地暖,14;人体健康,15;";            
            var ds2 = "吊顶顶灯,1,01;墙壁灯,2,01;地灯,3,01;书架灯,4,01;床头灯,5,01;窗纱,6,03;窗帘,7,03;窗户,8,03;";
            var arrds1 = new Array();
            var arrTemp = ds1.split(";");
            var i;
            var objS = document.getElementById("ds1id");
            var objD = document.getElementById("ds2id");
            for(i=0;i<arrTemp.length;i++){
                 arrds1[i] = arrTemp[i].split(",");
            }
            var arrds2 = new Array();
            arrTemp = ds2.split(";");
            for(i=0;i<arrTemp.length;i++){
                 arrds2[i] = arrTemp[i].split(",");
            }
            function changePort(){
                removeOptions(objD);
                 var index = objS.selectedIndex;
                 var codeS = objS.options[index].value;
                 var j = 0;
                 for(i=0;i<arrds2.length;i++){
                  if(arrds2[i][1]==codeS){
                       objD.options[j] = new Option(arrds2[i][0],arrds2[i][2]);
                       j++;
                  }
                  if(j==0)
                       objD.options[0] = new Option("没有可选项","0");
                 }
        }
        function removeOptions(obj){
             for(i=0;i<obj.options.length;i++)
                  obj.options[i] = null;
        }
        function getOptions(){
            var j = 0;
            for(i=0;i<arrds1.length;i++){
                   objS.options[j] = new Option(arrds1[i][0],arrds1[i][1]);
                   j++;
              }
              if(j==0)
                   objD.options[0] = new Option("没有可选项","0");
        }
</script>

</body>
</html>

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧