ie8以下不兼容document.getElementsByName解决方法

在IE8以认为只有文本标签才有name属性的,一些元素标签用document.getElementsByName获取不到DOM,如DIV,span等,这里做一下兼容。

HTML:

; ;<pre> ; ; ; ; ; ; ; ; ;&lt;div ; ;name="pox"&gt;我是pox&lt;/div&gt;

; ; ; ; ; ; ; ; ;&lt;div ; ;name="pox"&gt;我是pox&lt;/div&gt;

; ; ; ; ; ; ; ; ;&lt;div ; ;name="pox"&gt;我是pox&lt;/div&gt;

; ; ; ; ; ; ; ; ;&lt;div ; ;name="pox"&gt;我是pox&lt;/div&gt;

; ; ; ; ; ; ; ; ;&lt;div ; ;name="pox"&gt;我是pox&lt;/div&gt; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;</pre> ; ;<pre></pre> ; ; ; ;<pre> </pre> ; ;

兼容JS:

; ;<pre>function ;getByName(Name){ ;

; ; ; ;var ;i=document.getElementsByName(Name)

; ; ; ; ; ; ;if(i&gt;0){

; ; ; ; ; ; ; ;return ;i;

; ; ; ;}else{

; ; ; ; ; ; ; ;var ;aEle=document.getElementsByTagName('*'); ;

; ; ; ; ; ; ; ;var ;arr=[]; ; ;

; ; ; ; ; ; ; ; ;for(var ;i=0;i&lt;aEle.length;i++){

; ; ; ; ; ; ; ; ;if(aEle[i].getAttribute("name")==Name){

; ; ; ; ; ; ; ; ; ; ; ;arr.push(aEle[i])

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;}

; ; ; ; ; ; ; ; ; ; ; ;}

; ; ; ; ; ; ; ; ;return ;arr; ;

; ; ; ; ; ; ; ;}

; ; ; ;}</pre> ; ;

测试JS:

; ;<pre>&lt;script ;type="text/javascript"&gt;

; ; ; ; ; ; ; ; ; ; ; ;window.onload=function(){

; ; ; ; ; ; ; ; ; ; ; ;function ;getByName(Name){ ;

; ; ; ; ; ; ; ; ; ; ; ;var ;i=document.getElementsByName(Name)

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;if(i&gt;0){

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;return ;i;

; ; ; ; ; ; ; ; ; ; ; ;}else{

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;var ;aEle=document.getElementsByTagName('*'); ;

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;var ;arr=[]; ; ;

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;for(var ;i=0;i&lt;aEle.length;i++){

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;if(aEle[i].getAttribute("name")==Name){

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;arr.push(aEle[i])

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;}

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;}

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;return ;arr; ;

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;}

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;}

; ; ; ; ; ; ; ; ; ; ; ; ;var ;Box=getByName('pox'); ; ; ; ; ; ; ; ; ; ; ; ;

; ; ; ; ; ; ; ; ; ; ; ;alert(Box.length);

; ; ; ; ; ; ; ; ; ; ; ;}

; ; ; ; ; ; ; ;&lt;/script&gt;</pre> ; ;