2013-12-15 42 views
0

我有一个与background-color:rgba(1,0,0,0)元素,我需要通过jquery得到这个值来做一些事情。我试过$('.overlay').css("backgroundColor"),但它返回transparent。有没有办法通过jquery获取元素的rgba背景颜色?越来越rgba背景颜色由jquery

顺便说一下,这里是我的代码:

HTML:

<div class="overlay"></div> 

CSS:

.overlay { background-color:rgba(1,0,0,0) } 

的jQuery:

$('.overlay').css("backgroundColor"); 
+1

你使用的是哪个版本的jQuery?如果我运行你提供的代码,我会返回'rgba(1,0,0,0)'。看看[这个jsFiddle](http://jsfiddle.net/pLNNz/2/) – Lasse

+0

即时通讯使用jquery-1.10.1 !! –

+2

这是一个浏览器问题,在Firefox中返回透明,而在Chrome中返回实际的CSS属性。 –

回答

1

正如@codingstill指出的那样,Firefox返回transparent。但你仍然可以这样做:

var bgColor = $('.overlay').css("backgroundColor");  
if(bgColor == 'transparent' || bgColor == 'rgba(1, 0, 0, 0)'){ 
    //do stuff 
} 
+1

这只是一个黑客,如果有不同颜色的规则,例如.overlay2 {background-color:rgba(2,0,0,0)}。另外,在IE11中它什么也没有返回:(:) –

+0

** ** ** **,我的if语句是:'if(bgColor =='rgba(1,0,0,0)){do function A}''和'else if(bgColor =='rgba(2,0,0,0)){do function B}'!!firefox将假设都是透明的,所以我会在Firefox中遇到问题吗?或者一般功能是相同和我的代码将在Firefox和铬等工作? –

+0

@codingstill:确实。你是绝对正确的。它在IE11中返回* nothing *!奇怪... – Lasse