Javascript 如果背景颜色为蓝色,则添加元素类

Javascript 如果背景颜色为蓝色,则添加元素类,javascript,Javascript,我对javascript非常陌生,我正在处理一个页面,试图根据元素的背景颜色将一个类添加到元素中,如果它设置为rgb(32,44,62)我想向元素添加一个类。当它现在被编码时,它将它添加到所有匹配的元素中,而不仅仅是背景色的元素。下面是我对代码的测试。任何见解都会非常有用 Javascript var basicBGColor = $('section.content_basic').css('background-color'); $('section.content_ba

我对javascript非常陌生,我正在处理一个页面,试图根据元素的背景颜色将一个类添加到元素中,如果它设置为
rgb(32,44,62)
我想向元素添加一个类。当它现在被编码时,它将它添加到所有匹配的元素中,而不仅仅是背景色的元素。下面是我对代码的测试。任何见解都会非常有用

Javascript

    var basicBGColor = $('section.content_basic').css('background-color');

    $('section.content_basic').each(function() {
      if (basicBGColor == 'rgb(32, 44, 62)') {
        $(this).addClass('goldBorder');
      };
    });
你应该把
var basicBGColor=$('section.content_basic').css('background-color')在每个循环内

因为,如果你在循环之外声明这个变量,它将只执行一次,并且始终为真,因此使这个条件
if(basicBGColor=='rgb(32,44,62)
始终为真,因此将为每个循环中的所有元素添加相同的类

更新后的代码如下所示:

 

    $('section.content_basic').each(function() {
      let basicBGColor = $(this).css('background-color');
      if (basicBGColor == 'rgb(32, 44, 62)') {
        $(this).addClass('goldBorder');
      };
    });


我对Javascript也很陌生,但我相信如果你想检查等价性,你应该使用(==)而不是(==)

因此,与此相反:

(basicBGColor == 'rgb(32, 44, 62)')
尝试使用以下方法:

(basicBGColor === 'rgb(32, 44, 62)')
当它现在被编码时,它将它添加到所有匹配的元素中,而不仅仅是 有背景色的

如果要检查单个元素,应准确获取元素的
背景色
,如下所示:
$('section.content_basic')。每个(函数(){
const basicBGColor=$(this.css('background-color');
const isMatching=basicbcgcolor='rgb(32,44,62)';
isMatching&$(this.addClass('goldBorder');
});
.content\u basic{
最大宽度:100%;
背景重复:无重复;
背景尺寸:100%,自动;
位置:相对位置;
}
.戈德博德:之后{
位置:绝对位置;
内容:'';
顶部:20px;
底部:20px;
右:20px;
左:20px;
背景:透明;
边框:1px实心#a48147;
z指数:0;
指针事件:无;
}
.goldBorder.body内容{填充:2.5rem;颜色:#fff;}

标题
Lorem ipsum dolor sit amet,是一位杰出的献身者。两个是狮子座,一个是狮子座,另一个是狮子座。Morbi placerat拍卖商。前庭排气效率最高。克拉斯·康莫多·阿尔库·利博,在塞勒里斯克·努拉·森佩尔。这是一个很好的解决方案。不受损害的食物,不受损害的食物。老芦苇木瓜发酵液。大酒杯、苏打水、啤酒杯和安特酒。普罗因·帕特在奈克·马克西姆斯。毛里斯坐在阿梅特鲁特姆努拉。这是一个爱的层次,而爱的间隙,是一个爱的层次。

标题
这并不是完全错误,但也不是完全正确的,也不能解决问题……谢谢,我会测试一下。谢谢,我会测试一下这段代码,看看是否有效。
(basicBGColor === 'rgb(32, 44, 62)')