如何与 jQuery RGB 值进行比较?

3
我想使用jQuery或Javascript中的简单方法来比较返回的rgb颜色值。我已经尝试了所有我能想到的东西,但是无法得到任何评估为真的结果。
if( $('.Updated-Alert').css('color') == 'rgb(255,0,0)')

我找到了其他解析RGB的答案,但是它们似乎对我需要的东西来说过于复杂了。


css('color') 返回什么? - Ibu
这取决于您使用的浏览器,Firefox 14.0.1返回“rgb(255, 0, 0)”,而您正在比较没有空格的“rgb(255,0,0)”。 - Matthew
字符串可能包含空格(因为浏览器的原因)。例如 rgb(12, 34, 56) 这样的格式,在检查时会返回 false。 - Robert K
3个回答

11
它只返回一个字符串。你的比较失败是因为空格导致了不等价性。
$('div').css('color') === 'rgb(0, 0, 255)'

如果您想增强它的稳定性,可以修剪空格并将其与修剪后的字符串进行比较:

http://jsfiddle.net/etLcv/

$('div').css('color').replace(/\s+/g, '') === 'rgb(0,0,255)'

甚至可以仅保留数字:

$('div').css('color').replace(/\D+/g, '') === '00255'

4
rgb(25,50,0) trim => 25500 rgb(255,0,0) trim => 25500(注:这里的“trim”是指把RGB颜色值中的逗号和空格去掉,然后将三个数字连在一起组成一个六位的数字字符串。) - Ivan Black

4

2
这在基本的JavaScript中并不是一项简单的任务,需要考虑到以下事实: white == #FFF == #FFFFFF == rgb(255,255,255) == rgba(255,255,255,0 这里有一个免费的库可以解决这个问题: http://www.phpied.com/rgb-color-parser-in-javascript/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接