mark35 发表于 2012-12-1 18:07 
你能看懂这个源码么 http://www.oschina.net/code/snippet_126398_5391
半桶水响叮当就不要在这儿丢人现 ...
- <script type="text/javascript" src="demo-public/js/district-all.js"></script>
- <script type="text/javascript">
- var S=function(d){if(typeof d=='object'){return S.init(d);}};S.data={};S.init=function(d){var i=Math.random();S.data[i]=d;document.writeln(S.read(i));return i};S.read=function(a,b,c){var d=b?b:S.data[a];str='<select dataid="'+a+'" id="sbs_'+a+(c?c:'')+'" onchange="S.run(this)" onfocus="S.run(this)"><option value="">请选择</option>';for(var i in d){if(d[i]['name']){str+='<option value="'+i+'">'+d[i]['name']+'</option>'}}str+='</select>';return str};S.getdata=function(a,b){var k=b.split('_'),d=S.data[a][k[0]],f;if(k.length>1){for(var i=1;i<k.length;i++){f=k[i];if(d['cell']&&d['cell'][f]&&d['cell'][f]['cell']){d=d['cell'][f]}else{return-1}}}return d};S.$=function(d){return document.getElementById(d)};S.hide=function(a,b){e=S.$('sbs_'+a).id+S.$('sbs_'+a).value;f=c=S.$('sbs_'+a).getAttribute('key');for(var i=0;i<100;i++){if(S.$(c)){if(S.$(c)){S.$(c).style.display='none'}if(S.$(c).getAttribute('key')){c=S.$(c).getAttribute('key')}}else{break}}if(S.$(f)==S.$(e)){S.$(e).style.display=''}};S.show=function(a,b){c=S.$('sbs_'+a).id+S.$('sbs_'+a).value;for(var i=0;i<100;i++){if(S.$(c)){S.$(c).style.display='';if(S.$(c).value){c+='_'+S.$(c).value}}else{break}}};S.run=function(a){if(!a.value)return;var i=a.getAttribute('dataid'),key=a.getAttribute('key'),c=a.id,f;k=c.replace('sbs_'+i,'');if(!k){k=a.value}else{;k+='_'+a.value}if('sbs_'+i+k==key){return}if(S.$(key)){S.hide(i)}if(S.$('sbs_'+i+k)){S.show(i);a.setAttribute('key','sbs_'+i+k);return}a.setAttribute('key','sbs_'+i+k);sbs=S.$('sbs_menu');if(!sbs){var sbs=document.createElement('div');sbs.id="sbs_menu";sbs.style.display='none';document.getElementsByTagName('body')[0].appendChild(sbs)}f=S.getdata(i,k);if(f==-1){return}sbs.innerHTML=S.read(i,f['cell'],k);a.parentNode.insertBefore(S.$('sbs_'+i+k),a);a.parentNode.insertBefore(a,S.$('sbs_'+i+k));return i}
- S.showdata=function (a,b,c){
- var e=b?b:10;f='sbs_'+a,g=c?c:'',h="",i=0,j=S.data[a],v=0,k="";
- for(;i<e;i+=1){
- if(S.$(f)){
- v = S.$(f).value;
- if(v){
- j = j[v];
- h += j['name'];
- j = j['cell'];
- f +=k+S.$(f).value;
- k="_";
- }
-
- }else{
- break;
- }
- }
- return h;
- }
- var x = S(districtData);
- </script>
- <input name="查看" type="button" onclick="alert(S.showdata(x));" value="查看"/>
复制代码 |