zoukankan      html  css  js  c++  java
  • 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'是要查找的标签。

  • 相关阅读:
    逆元
    C++快读
    最长单调上升子序列(LIS) O(nlogn)求法
    【简●解】巴厘岛的雕塑
    【简●解】学校食堂
    【简●解】[HNOI2005]星际贸易
    差分约束系统小结
    【简•解】花园
    最小生成树小结
    概率及期望DP小结
  • 原文地址:https://www.cnblogs.com/ywy8/p/12881228.html
Copyright © 2011-2022 走看看