兼容低版本ie的getByClass方法

ecma5为我们提供了实用的getElementsByClassName()方法;可惜这个方法在低版本ie下直接挂掉了。

在不依赖jq的前提下自己实现了一下方法,

function getByClass(oParent,sClass){
    
    if(oParent.getElementsByClassName){
                //本除返回的是dom集合,类数组而非数组
        return oParent.getElementsByClassName(sClass);
    }
    
    var result = [];
    var re = new RegExp("\\b"+sClass+"\\b");
    
    var aEle = oParent.getElementsByTagName("*");
    
    for(var i = 0; i < aEle.length; i++){
        if( re.test(aEle[i].className) ){
            result.push(aEle[i]);
        }
    }
        //本除返回数组
    return result;
}
    

需要注意的高级浏览器和低级浏览器返回的对象是不同的。

 

posted @ 2015-09-07 22:12  vidyWu  阅读(152)  评论(0编辑  收藏  举报