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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

 

以上是关于ie8以下不兼容document.getElementsByName解决方法的主要内容,如果未能解决你的问题,请参考以下文章

解决ie8以下不兼容h5的新标签

兼容IE8以下,获取className节点的元素(document.getElementsByClassName()兼容写法)。

解决IE8下不兼容rgba()的解决办法

IE8及以下兼容h5标签的两种方法

缺少IE8兼容模式按钮

window.getComputedStyle能够获取元素的实际样式,但是低版本的ie8及以下不支持,如何在低版本的ie上兼容类似的功能