封装getElementsByClassName

function getElementsByClassName(oEle,sClass,sEle){
    if(oEle.getElementsByClassName){
        return oEle.getElementsByClassName(sClass);
    }else{
        var aEle=oEle.getElementsByTagName(sEle || '*'),
            reg=new RegExp('(^|\s)'+sClass+'($|\s)'),
            arr=[],
            i=0,
            iLen=aEle.length;

        for(; i<iLen; i++){
            if(reg.test(aEle[i].className)){
                arr.push(aEle[i]);
            }
        }
        return arr;
    }
}

使用方法:

//第一种:选择document下的所有class为box_box的div元素
        getElementsByClassName(document,'box_box','div')[0].style.background='yellow';

//第二种:选择document下的所有class为box-box的div元素
        getElementsByClassName(document,'box-box','div')[0].style.background='yellow';

//第三种:选择document下的所有class为box-box元素
        getElementsByClassName(document,'box-box')[0].style.background='yellow';

oEle、sClass是必填的,sEle是选填的。

sClass中又中横线或下划线亲测木有问题,比如说:box-box box_box;但是如果是其他特殊字符就很有可能有问题了,如:box$box...

兼容性:亲测ie6+

js文件下载:

http://pan.baidu.com/share/link?shareid=1821056573&uk=3945321701

来自大大的相关文章:

http://www.cnblogs.com/rubylouvre/archive/2009/07/24/1529640.html

原文地址:https://www.cnblogs.com/barrior/p/4136720.html