var shadeAmount = 161 / $('.header').length;
        $('.header').each(function (i, e) {
            var shade = i * shadeAmount;
            var color = 'rgb(' + shade + ',' + shade + ',' + shade + ')';
            $(this).css({"background-color": color});
        });


我无法获得上面的代码来设置每个标题的background-color属性。如果我将代码更改为此:

$(this).css({"background-color": "rgb(1,1,1)"});


有用。那么我声明颜色的方式出了什么问题?

最佳答案

尝试这个...

var count = $(".header").length;
if (count) {
    var shadeAmount = parseInt(161 / count, 10);
    $('.header').each(function (i, e) {
        var shade = i * shadeAmount;
        var color = 'rgb(' + shade + ',' + shade + ',' + shade + ')';
        $(this).css({"background-color": color});
    });
}


我只是通过将shadeAmount的计算包装在parseInt中来清除它,以确保您没有将浮点数传递到rgb值中。

我还添加了一个检查标头类是否包含元素,因为如果在没有标签的页面上运行它,代码将失败。

关于jquery - jQuery不设置CSS属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19935338/

10-10 11:44