IE浏览器不支持document.getElementsByClassName的解决办法

Posted ywy8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IE浏览器不支持document.getElementsByClassName的解决办法相关的知识,希望对你有一定的参考价值。

1、基础方法①

/**
 * 通过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;
    }
} 

2、基础方法②

/**
 * 判断节点class是否存在
 */
function hasClass(tagStr, classStr) {
    // 这个正则表达式是因为class可以有多个,判断是否包含
    var arr = tagStr.className.split(/s+/);
    for ( var i = 0; i < arr.length; i++) {
        if (arr[i] == classStr) {
            return true;
        }
    }
    return false;
}

3、调用

var tags = getClassNames(‘active‘, ‘li‘);
if (null != tags) {
    // 遍历对象,改其css样式
    for ( var i = 0; i < tags.length; i++) {
        tags[i].className = ‘‘;
    }
}
param.className = ‘active‘;

4、说明

‘active‘是要操作的样式,‘li‘是要查找的标签。

以上是关于IE浏览器不支持document.getElementsByClassName的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

jqgrid 5.2为啥不支持ie8

MKMapView 路线/方向

js设置div高度为浏览器一半

ie9不支持vue的v-for循环怎么处理

IE浏览器运行脚本显示“对象不支持此属性或方法”

IE浏览器显示不受支持的接口怎么办