2013-08-24 38 views
7

我的代碼看起來像這樣jQuery的檢查,如果的CSS屬性設置

if($(element).css("background-color") == null){ 
    $(element).css("background-color", "white"); 
} 

我要確保,如果顏色沒有在style.css文件中設置,我添加它。但是,該代碼不起作用。它總是返回rgba(0,0,0,0)。我正在使用的瀏覽器是Chrome。

是否有另一種方法來檢查顏色是否沒有設置?

+3

不要用類和CSS樣式你的邏輯。然後你可以用'hasClass'檢查這個類是否存在。 – elclanrs

+0

這是一種方法。謝謝:) – TatiOverflow

回答

1

elclanrs建議的方法是處理這種問題最優雅的方法,應該是首選的方法。但是,爲了滿足好奇心,您可以使用jQuery Attribute Contains Selector來獲得相同的結果。

$("div[style*='background-color']").text("I have a background color!"); 

jsFiddle demo

+0

雖然這很好,但它只檢查我認爲在線樣式? – MackieeE

+1

你是對的,這是你有其他選擇時不應該這樣做的另一個原因。 http://stackoverflow.com/a/2239605/1351133是比我發佈的更好/更徹底的解決方案。 – Limescale

+0

那裏的好鏈接,與OP的要求非常相關=)(即使班級路線無疑是最好的方法!) – MackieeE

4

CSS:

.background-set { background-color: white; } 

的jQuery:

var $el = $(element); 

if(!$el.hasClass('background-set')){ 
    $el.addClass('background-set'); 
} 

雖然我不知道爲什麼你需要檢查。你可以在沒有條件的情況下添加它。


或者:

if ($el.prop('style').backgroundColor == '') { 
    ... 
} 

if ($el.get(0).style.backgroundColor == '') { 
    ... 
}