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 :(得分: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
});
});