兼容各版本浏览器,封装原生Js获取ClassName

原生js方法 document.getElementsByClassName在ie8及其以下浏览器中不能使用,所以写了一个兼容IE的方法。
代码如下:

/** 
* 通过class名和标签名获取css样式对象组 
*/
function getClassNames(classStr, tagName){
    if (document.getElementsByClassName)    {
        return document.getElementsByClassName(classStr)
    } else {
        //为了兼容ie8及其以下版本的方法
        var nodes = document.getElementsByTagName(tagName), ret = [];
        for (i = 0; i < nodes.length; i++) {
            if (hasClass(nodes[i], classStr)) {
                ret.push(nodes[i]);
            }
        }
        return ret;
    }
}
/**
 * 判断节点class存在性
 */
function hasClass(tagStr, classStr){
    //这个正则表达式是因为class可以有多个,判断是否包含
    var arr = tagStr.className.split(/\s+/);//等同于split(" ")
    for ( var i = 0; i < arr.length; i++) {
        if (arr[i] == classStr) {
            return true;
        }
    }
    return false;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容