JS兼容getElementsByClassName

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS兼容getElementsByClassName相关的知识,希望对你有一定的参考价值。

getElementsByClassName是通过class来获取DOM,但是IE8及以下不能兼容。这里做了一下兼容性。

html

 <div  class="pox">我是pox</div>

兼容JS:

function getByClassName(ClassName){     
    if(document.getElementsByClassName){
     return document.getElementsByClassName(ClassName);
    }else{
    var aEle=document.getElementsByTagName(‘*‘); 
    var arr=[];  
    for(var i=0;i<aEle.length;i++){
     if(aEle[i].className==ClassName){
    arr.push(aEle[i])
        }
        }
      return arr; 
      }
       }

测试:

window.onload=function(){
            function getByClassName(ClassName){     
                if(document.getElementsByClassName){
                return document.getElementsByClassName(ClassName);
                }else{
                var aEle=document.getElementsByTagName(‘*‘); 
                var arr=[];  
                 for(var i=0;i<aEle.length;i++){
                 if(aEle[i].className==ClassName){
                    arr.push(aEle[i])
                        }
                    }
                 return arr; 
                    }
                }
             var Box=getByClassName(‘pox‘)[0];            
            alert(Box.innerHTML);

            }

结果:

技术分享IE7技术分享谷歌技术分享火狐

以上是关于JS兼容getElementsByClassName的主要内容,如果未能解决你的问题,请参考以下文章

JS的兼容函数

js兼容性汇总

getElementsByClassName兼容 封装

IE8 兼容 getElementsByClassName

解决getElementsByClassName兼容问题

兼容性比较好的getElementsByClassName函数