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});
});
我无法使用上面的代码来设置每个标题的背景颜色属性。如果我将代码更改为:
$(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
中对其进行了清理,以确保您不会将 float 传递给 rgb 值。
我还添加了检查是否有 元素带有 header 类,因为如果您在没有元素的页面上运行它,您的代码将失败。
关于jQuery 不设置 CSS 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19935338/