2009-09-11 39 views
1

我需要在两种颜色之间闪烁:红色和白色。jQuery不同浏览器的标准颜色定义是什么?

我发现$targetcss('background-color','red')后,

$targetcss('background-color')值是不是红色,而是rgb(255, 255, 255)

讲究,有之间的空间 “” 和数字在Firefox中,

但IE中没有空间。

我的代码现在:

if(existingBgColor != 'rgb(255, 255, 255)') 
    $target.css('background-color', 'rgb(255, 255, 255)'); 
else 
    $target.css('background-color', 'white'); 

在Firefox其中一期工程,但没有对IE浏览器。

当然,我可以把它改成这样,使之适用于IE:

if(existingBgColor != 'rgb(255, 255, 255)' && existingBgColor != 'rgb(255,255,255)') 
    $target.css('background-color', 'rgb(255, 255, 255)'); 
else 
    $target.css('background-color', 'white'); 

但是什么第三浏览器吗?

有没有标准的解决方案呢?

回答

-1

你可以简单地测试前修剪出所有的空白:

existingColor = existingColor.replace(new RegExp(/[" "]/g), ""); //rgb(255,255,255) 

编辑:在评论认为:十六进制值是跨浏览器,使用非常方便。但是如果你坚持rgb值,那么上面的代码将帮助你理清你的问题。然而。如果你开始喜欢$myElm.css("background-color", "red");写的东西,你会得到一组全新的问题...

+0

事实上,我期待使用某种方式来使用“红色”,“白色”等颜色,但似乎现在是快速修复。 – omg

+0

不好的选择。 JavaScript中的正则表达式很慢。使用HEX(看看我的答案)。 – roosteronacid

+0

10-20个字符长度的字符串的正则表达式不慢。它不可能。你的回答并没有回答他的问题,因为他正在寻找方法来检查rgb值。你给了他另一个选择。 – peirix

0

可以用十六进制值?所以红=#FF0000和白色= #FFFFFF

0

使用HEX

请看kuler以及。

+0

哦,不,它不工作! – omg

+0

你必须在数字前添加“#” - 黑色为“#000000”,白色为“#FFFFFF”,红色为“#FF0000”,蓝色为“#0000FF”等。 – roosteronacid

0

您可以指定一个十六进制颜色值,例如#FF0000红色

$target.css('background-color', '#FF0000'); // red background color 

这里有一个Working Demo一起玩。检查Firebug或Web Developer工具栏中的结果

相关问题