jQuery 不设置 CSS 属性

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

我无法使用上面的代码来设置每个标题的背景颜色属性。如果我将代码更改为:

$(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/

相关文章:

javascript - 使用 jQuery 将鼠标悬停在相邻文本上时更改图标的颜色

jquery - 如何在以下情况下使用 Jquery 为 UL 设置高度

javascript - 捕获和冒泡事件

html - 如何为矩形的对 Angular 线设置动画?

javascript - 单击时更新输入值

html - GoLang HTML 模板从模板调用下方删除所有数据

html - 为什么顶部的边距不会改变?

html css目录的html奇怪行为

html - Bootstrap list-inline li 元素交错排列

javascript - 将 JS 变量传递给 getElementById