jQuery没有设置CSS属性

时间:2013-11-12 17:01:23

标签: jquery html css styling

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)"});

有效。那么我宣布颜色的方式有什么问题呢?

2 个答案:

答案 0 :(得分:3)

试试这个......

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值。

我还添加了一个检查,其中是带有标题类的元素,因为如果在没有标题的页面上运行它,代码将会失败。

答案 1 :(得分:0)

var shadeAmount = 161 / $('.header').length;
$('.header').each(function (i, e) {

    var shade = ++i * shadeAmount;

    var color = 'rgb(' + shade + ',' + shade + ',' + shade + ')';

    console.log(color);

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

小提琴:http://jsfiddle.net/2mUH2/