jQuery не устанавливает свойство CSS

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

Оно работает. Так что же неправильно с тем, как я объявляю цвет?

  • 0
    ты можешь показать скрипку?
  • 0
    Почему существует нечетное число " в $(this).css({"background-color": "rgb(1,1,1)}); ?
Показать ещё 1 комментарий
Теги:
styling

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

Я просто дезинфицировал его, завернув вычисление shadeAmount в parseInt, чтобы убедиться, что вы не shadeAmount float в значение rgb.

Я также добавил, что есть элементы с классом заголовка, так как ваш код не удастся, если вы запустили его на странице, где их не было.

  • 0
    Ах, я думаю, что вы взломали это! Я разбираю поплавки в RGB, так как это подразделение. Большое спасибо. Я попробую это сейчас.
  • 0
    +1 добавил закрывающую кавычку в $(".header") .
Показать ещё 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/

  • 1
    И все же, как нам сказали , это та часть, которая «работает». :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню