gpt4 book ai didi

javascript - 向具有特定 CSS 属性的元素添加类

转载 作者:行者123 更新时间:2023-11-28 08:10:45 25 4
gpt4 key购买 nike

我正在创建一个脚本,它将迭代“body”下的每个元素并检查其“背景颜色”。如果此背景颜色与“#eb2c33”匹配,则脚本将向该元素添加一个类,否则它将移动到下一个元素。我使用它是为了避免进入 html 并手动将该类放入元素中。这是我的代码。

$(document).ready(function (e) {

$('body *').each(function(index) {

var rgbg = $(this).css('background-color');
if(rgbg == "#eb2c33")
{
$(this).addClass('jcbg');

}

});
});

现在,如果我迭代特定的 div(如页眉或页脚等),此函数可以完美运行。但是当我迭代整个 DOM 时,此函数根本不起作用。请注意,我使用的是 csshook,它会以十六进制而不是 RGB 形式提供颜色值,所以请不要这样做。有什么帮助吗?

更新:

我现在知道问题所在了。它位于 this post 的 css 钩子(Hook)中我正在使用的。我刚刚删除了那个钩子(Hook)并直接使用了 RGB 值,它开始完美工作。这是我更新的代码

$(document).ready(function (e) {


$('body *').each(function(index) {

var rgbg = $(this).css('background-color');
if(rgbg == "rgb(235, 44, 51)")
{
$(this).addClass('jcbg');

}

});

});

感谢@Guffa 的 fiddle 。它帮助了我。

最佳答案

问题是jquery返回rgb(...),即使你声明为十六进制,所以我只是添加了一个函数将十六进制转换为rgb:

function hex2rgb(hex) {
return ['0x' + hex[1] + hex[2] | 0, '0x' + hex[3] + hex[4] | 0, '0x' + hex[5] + hex[6] | 0];
}

不仅仅是调整您的代码:

$(document).ready(function (e) {

// Color to change
var targetHex = hex2rgb('#eb2c33');

$('body *').each(function(index) {
var rgbg = $(this).css('background-color');

if(rgbg == 'rgb('+targetHex[0]+', '+targetHex[1]+', '+targetHex[2]+')'){
$(this).addClass('jcbg');
}

});
});

这是Fiddle

关于javascript - 向具有特定 CSS 属性的元素添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24262619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com