2014-09-27 59 views
1

如何讓如何獲取元素的樣式值 - jQuery的

if ($(this).css('background-color') == 'InfoBackground') 
{ 
    // it doesn't enter here 
} 
+1

background-color需要顏色代碼。你可能想要檢查類:'$(this).hasClass('InfoBackground')'。 – Paul 2014-09-27 15:32:09

+2

_注意元素的計算樣式可能與樣式表中爲該元素指定的值不同。例如,計算的維度樣式幾乎總是像素,但可以在樣式表中指定爲em,ex,px或%。不同的瀏覽器可能會返回邏輯上但不是文本相等的CSS顏色值,例如#FFF,#ffffff和rgb(255,255,255)._ – undefined 2014-09-27 15:32:09

+0

http://stackoverflow.com/questions/5999209/how-to-get-the -background-color-code-of-an-element – 2014-09-27 15:32:11

回答

0

jQuery中的背景顏色輸出是rgb()據我所知,所以我不認爲如果有比較方便的方法!

看看THIS例如,

alert($('#color').css('background-color')); 
if($('#color').css('background-color')=='red'){ 
    alert('first if'); 
} 

它不會進入第一,如果因爲$('#color').css('background-color')等於rgb(255,0,0)和不匹配red所以它不會if條件裏面得到。

你可以做什麼,是爲了得到所需的DOM類,並檢查元素具有類,像這樣:

if($('#color').hasClass('red')){ 
    alert('second if'); 
} 

時會觸發其內部的警報。

+0

我明白了,但是這是怎麼回事?如果($(this).css('background-color')=='rgb(251,252,197)') { //它現在應該進入,對吧? } – 2014-09-27 15:46:38

+0

它不會,因爲你需要在每個半列之後放置一個空格,像這樣if($(this).css('background-color')=='rgb(251,252,197)') {}',現在它會進入,但正如我上面所說,這是不方便的,這意味着它不是一個好主意,因爲輸出可能在不同的瀏覽器中有所不同,最好和最常用的方法是使用我上面提到的類。 – 2014-09-27 15:54:43

+0

解決,Thanq(Y) – 2014-09-27 16:02:41

-1

你要檢查對RGB值什麼的InfoBackground是背景顏色屬性的值。

注意以下回報rgb(251, 252, 197)

if ($("#myElement").css('background-color') == 'rgb(251, 252, 197)') { 
 
    alert('hello'); 
 
}
#myElement { background-color: InfoBackground; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<div id="myElement">Hi</div>


然而,這似乎是一種善變的辦法。不同的瀏覽器可能會有不同的行爲或實現InfoBackground的不同。最好分配一個類,屬性或數據屬性,然後用它來指定顏色。

+0

神祕降伏者?有什麼理由? – KyleMit 2014-09-27 15:43:01

+0

你是對的,你提到的錯誤,但沒有寫解決方案 – 2014-09-27 15:48:08