【发布时间】:2017-11-28 17:52:16
【问题描述】:
我目前正在使用生成的 html 代码。
我正在尝试选择所有元素,然后过滤那些具有相同背景颜色的元素并进行更改。 我当前的代码不起作用:
$('*').filter(function(){
return $(this).css('background-color') === '#0689cb';
}).css('background-color', 'green');
它返回了很多元素,但并没有改变任何东西。
如果我尝试这样的 .length:
$('*').filter(function(){
return $(this).css('background-color') === '#0689cb';
}).length;
将返回 0,这意味着它没有得到任何东西。
我的过滤功能有什么问题?
哦,我用 $('div') 尝试了选择器,看看选择器是否有问题,但它没有改变任何东西。
感谢您的帮助。
【问题讨论】:
-
我很确定背景颜色不会返回十六进制格式,而是 rgb ...我之前看到过这样的问题,但找不到它:)
-
哦,我也尝试了 rgb,它不起作用@TemaniAfif
-
是的,但是你需要注意一些空格,因为它是作为字符串返回的......你可以做一个console.log,你会看到如何
-
提供@TemaniAfif 观点的示例:jsfiddle.net/x9zcaqjr -
background-color: red;输出rgb(255, 0, 0)、间距和所有内容。 -
simple
console.log($(this).css('background-color'))会显示失败的原因
标签: javascript jquery css filter