这是完整个的代码下面95行里面的else我想判断
哪个父级点级了默认他下面的子级就都跟着变成默认,怎么处理
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <title>无标题文档</title>
6 <style>
7 select{margin:3px;}
8 </style>
9 <script type="text/javascript">
10 window.onload=function(){
11 var s1=new Sel("div1");
12 s1.add("0",['广东','北京','上海']);
13
14 s1.add("0_0",['珠海','广州','深圳']);
15 s1.add("0_0_0",['香洲区','斗门区','平沙区']);
16 s1.add("0_0_1",['黄埔区','天河区','花都区']);
17 s1.add("0_0_2",['南山区','宝安','东门区']);
18
19
20 s1.add("0_1",['五环','朝阳','城区']);
21 s1.add("0_1_0",['四环','三环','二环']);
22 s1.add("0_1_1",['朝南','朝东','朝北']);
23 s1.add("0_1_2",['东城区','西城区','南城区']);
24
25 s1.add("0_2",['浦东','浦西','浦南']);
26 s1.add("0_2_0",['浦东1','浦东2','浦东3']);
27 s1.add("0_2_1",['浦西1','浦西2','浦西3']);
28 s1.add("0_2_2",['浦南1','浦南2','浦南3']);
29 s1.init(3);
30 };
31
32 function Sel(id){
33 this.oParent=document.getElementById(id);
34 this.data={};
35 this.aSel=this.oParent.getElementsByTagName("select");
36 }
37
38 Sel.prototype={
39
40 init:function(now){
41 var This=this;
42 for(var i=1;i<=now;i++){
43 var oSel=document.createElement("select");
44 var oPt=document.createElement("option");
45 oPt.innerHTML="默认";
46 oSel.index=i;
47 oSel.appendChild(oPt);
48 this.oParent.appendChild(oSel);
49 oSel.onchange=function(){
50 This.change(this.index);
51 }
52 }
53 this.first();
54 },
55
56 add:function(key,value){
57 this.data[key]=value;
58 },
59
60 first:function(){
61 var arr=this.data["0"];
62 for(var i=0;i<arr.length;i++){
63 var oPt=document.createElement("option");
64 oPt.innerHTML=arr[i];
65 this.aSel[0].appendChild(oPt);
66 }
67 },
68
69 change:function(iNow){
70 str="0";
71 for(var i=0;i<iNow;i++){
72 str+="_"+(this.aSel[i].selectedIndex-1);
73 }
74
75
76 if(this.data[str]){//有数据
77 var arr=this.data[str];
78
79 this.aSel[iNow].options.length=1;
80
81 for(var i=0;i<arr.length;i++){
82 var oPt=document.createElement("option");
83 oPt.innerHTML=arr[i];
84 this.aSel[iNow].appendChild(oPt);
85 }
86
87 !(this.aSel[iNow].options[1].selected=true);
88
89 iNow++;
90
91 //if(iNow<this.aSel.length){
92 this.change(iNow);
93 //}
94
95 }else{//没数据
96
97 //if(this.aSel[iNow].options[0].selected=true){
98 // this.aSel[iNow].options.length=1;
99 //}
100
101 }
102 },
103 }
104
105 </script>
106
107 </head>
108
109 <body>
110 <div id="div1">
111 </div>
112 </body>
113 </html>
6 回答
慕森卡
TA贡献1806条经验 获得超8个赞
if(iNow<this.aSel.length){
for(var i=iNow;i<=this.aSel.length;i++){
this.aSel[i].options.length=1;
}
}
largeQ
TA贡献2039条经验 获得超7个赞
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <style> select { margin: 3px; } </style> <script type="text/javascript"> window.onload=function(){ var s1=new Sel("div1"); s1.add("0",['广东','北京','上海']); s1.add("0_0",['珠海','广州','深圳']); s1.add("0_0_0",['香洲区','斗门区','平沙区']); s1.add("0_0_1",['黄埔区','天河区','花都区']); s1.add("0_0_2",['南山区','宝安','东门区']); s1.add("0_1",['五环','朝阳','城区']); s1.add("0_1_0",['四环','三环','二环']); s1.add("0_1_1",['朝南','朝东','朝北']); s1.add("0_1_2",['东城区','西城区','南城区']); s1.add("0_2",['浦东','浦西','浦南']); s1.add("0_2_0",['浦东1','浦东2','浦东3']); s1.add("0_2_1",['浦西1','浦西2','浦西3']); s1.add("0_2_2",['浦南1','浦南2','浦南3']); s1.init(3); }; function Sel(id){ this.oParent=document.getElementById(id); this.data={}; this.aSel=this.oParent.getElementsByTagName("select"); } Sel.prototype={ init:function(now){ var This=this; for(var i=1;i<=now;i++){ var oSel = document.createElement("select"); oSel.id = "select" + i; var oPt=document.createElement("option"); oPt.innerHTML="默认"; oSel.index=i; oSel.appendChild(oPt); this.oParent.appendChild(oSel); oSel.onchange=function(){ This.change(this.index); } } this.first(); }, add:function(key,value){ this.data[key]=value; }, first:function(){ var arr=this.data["0"]; for(var i=0;i<arr.length;i++){ var oPt=document.createElement("option"); oPt.innerHTML=arr[i]; this.aSel[0].appendChild(oPt); } }, change:function(iNow){ str="0"; for(var i=0;i<iNow;i++){ str+="_"+(this.aSel[i].selectedIndex-1); } if(this.data[str]){//有数据 var arr=this.data[str]; this.aSel[iNow].options.length=1; for(var i=0;i<arr.length;i++){ var oPt=document.createElement("option"); oPt.innerHTML=arr[i]; this.aSel[iNow].appendChild(oPt); } !(this.aSel[iNow].options[1].selected=true); iNow++; //if(iNow<this.aSel.length){ this.change(iNow); //} } else {//没数据 if(str=="0_-1") { var s1 = document.getElementById("select2"); var s2 = document.getElementById("select3"); s1.options[0].selected = true; s2.options[0].selected = true; } //if(this.aSel[iNow].options[0].selected=true){ // this.aSel[iNow].options.length=1; //} } }, } </script> </head> <body> <div id="div1"> </div> </body> </html>
略死板,但是解决了就行,我也不知道为什么。但是这样就是可以。应该是你想要的。
开满天机
TA贡献1786条经验 获得超13个赞
@小鬼文: 那就不用ID,给除第一个之外后续的select同一个样式。通过样式选择器找到后续所有的select对象,循环。设置选中第一个默认!稍微变通下就可以了!多少个都没问题!代码我就不给你写了额,自己按思路去敲!
添加回答
举报
0/150
提交
取消