ie8以下不兼容document.getElementsByName解决方法
在IE8以认为只有文本标签才有name属性的,一些元素标签用document.getElementsByName获取不到DOM,如DIV,span等,这里做一下兼容。
HTML:
; ;<pre> ; ; ; ; ; ; ; ; ;<div ; ;name="pox">我是pox</div>
; ; ; ; ; ; ; ; ;<div ; ;name="pox">我是pox</div>
; ; ; ; ; ; ; ; ;<div ; ;name="pox">我是pox</div>
; ; ; ; ; ; ; ; ;<div ; ;name="pox">我是pox</div>
; ; ; ; ; ; ; ; ;<div ; ;name="pox">我是pox</div> ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;</pre> ; ;<pre></pre> ; ; ; ;<pre> </pre> ; ;
兼容JS:
; ;<pre>function ;getByName(Name){ ;
; ; ; ;var ;i=document.getElementsByName(Name)
; ; ; ; ; ; ;if(i>0){
; ; ; ; ; ; ; ;return ;i;
; ; ; ;}else{
; ; ; ; ; ; ; ;var ;aEle=document.getElementsByTagName('*'); ;
; ; ; ; ; ; ; ;var ;arr=[]; ; ;
; ; ; ; ; ; ; ; ;for(var ;i=0;i<aEle.length;i++){
; ; ; ; ; ; ; ; ;if(aEle[i].getAttribute("name")==Name){
; ; ; ; ; ; ; ; ; ; ; ;arr.push(aEle[i])
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;}
; ; ; ; ; ; ; ; ; ; ; ;}
; ; ; ; ; ; ; ; ;return ;arr; ;
; ; ; ; ; ; ; ;}
; ; ; ;}</pre> ; ;
测试JS:
; ;<pre><script ;type="text/javascript">
; ; ; ; ; ; ; ; ; ; ; ;window.onload=function(){
; ; ; ; ; ; ; ; ; ; ; ;function ;getByName(Name){ ;
; ; ; ; ; ; ; ; ; ; ; ;var ;i=document.getElementsByName(Name)
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;if(i>0){
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;return ;i;
; ; ; ; ; ; ; ; ; ; ; ;}else{
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;var ;aEle=document.getElementsByTagName('*'); ;
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;var ;arr=[]; ; ;
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;for(var ;i=0;i<aEle.length;i++){
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;if(aEle[i].getAttribute("name")==Name){
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;arr.push(aEle[i])
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;}
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;}
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;return ;arr; ;
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;}
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;}
; ; ; ; ; ; ; ; ; ; ; ; ;var ;Box=getByName('pox'); ; ; ; ; ; ; ; ; ; ; ; ;
; ; ; ; ; ; ; ; ; ; ; ;alert(Box.length);
; ; ; ; ; ; ; ; ; ; ; ;}
; ; ; ; ; ; ; ;</script></pre> ; ;