2009-04-17 59 views
72

我有一個div:jQuery的:如何檢查,如果該元素具有一定的CSS類/風格

<div class="test" id="someElement" style="position: absolute"></div> 

有沒有什麼辦法來檢查,如果某些元素:

$("#someElement") 

具有特定班級(在我的情況下,「測試」)。

或者,有沒有辦法檢查en元素是否具有某種風格?在這個例子中,我想知道元素是否具有「position:absolute」。

非常感謝!

+14

不知道it'sd問題或答案是錯的,但問題有style =「test」,答案是尋找class =「test」 – wheresrhys 2009-04-17 09:26:56

+1

我的猜測是,問題是錯誤的,因爲他把錯誤的答案標記爲正確;但是無論在看票後,我認爲大多數人都在這裏尋找正確的答案來尋找這個錯誤的問題......呃,如果這是有道理的...... DrJokepu的答案,我的意思是。這就是爲什麼我至少在這裏。 – BrainSlugs83 2012-06-19 07:04:42

回答

51
if($('#someElement').hasClass('test')) { 
    ... do something ... 
} 
else { 
    ... do something else ... 
} 
+0

非常感謝。 完美解決方案 – 0100110010101 2009-04-17 09:14:52

1

我找到了一個解決辦法:

$("#someElement")[0].className.match("test") 

但不知何故,我相信有一個更好的辦法!

241

CSS樣式是鍵值對,而不僅僅是「標籤」。默認情況下,每個元素都有一組CSS樣式分配給它,其中大部分隱式使用瀏覽器默認值,其中一些元素在CSS樣式表中顯式重新定義。

要獲得分配給元素的特定CSS項的值,並進行比較:

if ($('#yourElement').css('position') == 'absolute') 
{ 
    // true 
} 

如果你沒有重新定義樣式,你會得到該特定元素的瀏覽器的默認。

12
if ($("element class or id name").css("property") == "value") { 
    your code.... 
} 
0

或者,如果你需要訪問具有該屬性的元素,它不使用一個id,你可以走這條路:

$("img").each(function() { 
     if ($(this).css("float") == "left") { $(this).addClass("left"); } 
     if ($(this).css("float") == "right") { $(this).addClass("right"); } 
    }) 
相關問題