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

できます。では、色を宣言する方法の何が問題なのですか?

4

2 に答える 2

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

float を rgb 値に渡さないように、 shadeAmountinの計算をラップしてサニタイズしました。parseInt

また、ヘッダー クラスを持つ要素があるかどうかのチェックも追加しました。ヘッダー クラスがないページでコードを実行すると、コードが失敗するためです。

于 2013-11-12T17:08:28.020 に答える
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/

于 2013-11-12T17:05:31.437 に答える