码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-05-13 11:41:50      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:node   classname   i++   etc   说明   cti   获取   active   版本   

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的解决办法

标签:node   classname   i++   etc   说明   cti   获取   active   版本   

原文地址:https://www.cnblogs.com/ywy8/p/12881228.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!