美文网首页Web前端之路让前端飞Web 前端开发
兼容各版本浏览器,封装原生Js获取ClassName

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

作者: 假行僧396741 | 来源:发表于2017-01-14 17:07 被阅读245次

    原生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;
    }
    

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/zfbebttx.html