你的位置:首页 > Java教程

[Java教程]ie8以下不兼容document.getElementsByName解决方法


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

HTML:

     <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>        

 

 

兼容JS:

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;     }  }

测试JS:

<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>