javascript - 动态修改 CSS - 适用于 IE9,但不适用于 Chrome 和 Firefox

标签 javascript css background-color

我有这个函数可以改变 CSS 类的背景颜色。

function changeBackgroundColor(className, value){
    var ss = document.styleSheets;
    for (var i=0; i<ss.length; i++) {
        var ss = document.styleSheets;
        var rules = ss[i].cssRules || ss[i].rules;
        for (var j=0; j<rules.length; j++) {
            if (rules[j].selectorText === className) {
                rules[j].style.backgroundColor = value;
            }
        }
    }
}

然后用这个调用它,

changeBackgroundColor(".menuActive", "#fff");

它在 IE9 中完美运行,但在 Chrome 和 firefox 中测试时,它似乎无法运行。 Chrome 和 Firefox 似乎找不到任何类或任何东西。 我对 javascript 有点陌生,所以如果你能解决这个问题或以任何方式指导我,我将不胜感激。

最佳答案

我推荐一种不同的方法,而不是使用 document.styleSheets:

function changeBackgroundColor(className, value){
    var elements;
    if (typeof document.getElementsByClassName === 'function') {
        // modern browsers
        elements = document.getElementsByClassName(className);
    } else {
        // other browsers (IE)
        elements = document.querySelectorAll('.' + className);
    }

    for (var i = 0; i < elements.length; i++) {
        elements[i].style.backgroundColor = value;
    }
}

此外,您距离更通用的函数还差一小步:

function changeStyle(className, styleName, value){
    var elements;
    if (typeof document.getElementsByClassName === 'function') {
        // modern browsers
        elements = document.getElementsByClassName(className);
    } else {
        // other browsers (IE)
        elements = document.querySelectorAll('.' + className);
    }

    for (var i = 0; i < elements.length; i++) {
        elements[i].style[styleName] = value;
    }
}

关于javascript - 动态修改 CSS - 适用于 IE9,但不适用于 Chrome 和 Firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11778934/

相关文章:

android - 在 android 中更改背景颜色是否会破坏小部件的外观?

android - CardView背景颜色被修剪

javascript - 在 SailsJS 中将图像 URL 保存到用户

html - 溢出 : hidden conundrum on mobile devices

javascript - 使用多个用户凭据的 Json 登录

html - Angular 组件倾斜的背景

html - contain (in background-size) 是如何工作的,或者为什么不在这里工作?

python-3.x - 使用 pyqt5 读取特定值时更改 QLCDNumber 颜色

javascript - 如何根据数组遍历数据?

javascript - 如何合并两个几乎相同的数组/对象(使用下划线js或类似的库)?