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

Javascript 向具有特定CSS属性的元素添加类,javascript,jquery,Javascript,Jquery,我正在创建一个脚本,它将迭代“body”下的每个元素,并检查其“background color”。如果此背景颜色与“eb2c33”匹配,则脚本将向该元素添加一个类,否则将移动到下一个元素。 我使用它是为了避免进入html并手动将该类放入元素。 这是我的密码 $(document).ready(function (e) { $('body *').each(function(index) { var rgbg = $(this).css('bac

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

$(document).ready(function (e) {
        
  $('body *').each(function(index) {
    
         var rgbg = $(this).css('background-color');
         if(rgbg == "#eb2c33")
         {
                $(this).addClass('jcbg');
             
              }

      });
});
现在,如果我迭代一个特定的div,比如页眉或页脚等,这个函数可以完美地工作。但是当我迭代整个DOM时,这个函数根本不起作用。 请注意,我使用的是一个CSB,它会给我十六进制而不是rgb的颜色值,所以请不要这样做。有什么帮助吗

更新:

我现在知道问题了。它就在我使用的css钩子中。我刚刚移除了那个钩子,直接使用了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的小提琴。它帮助了我。

问题是jquery返回rgb。。。即使您声明为十六进制,我也只是添加了一个将十六进制转换为rgb的函数:

不仅仅是修改了你的代码:

$(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');
        }

    });
});

这是

你说它不起作用的确切意思是什么?结果是什么?这与你的预期有什么不同?这是一个非常可怕的方法。您应该设置一个背景颜色为eb2c33的类,然后使用jQuery搜索该类。@Guffa我的意思是它根本不起作用。它应该像我针对特定元素时那样添加该类。它只是不添加类。如果我在body上迭代,什么也不会发生。*@Symbolwdd:测试时效果很好:@Guffa,这很奇怪……那么一定有冲突……谢谢你指出。。。
$(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');
        }

    });
});