2013-06-19 57 views
0

如果選擇器具有某個類,試圖找出如何匹配。例如。如何檢查選擇器是否有「兄弟」類

<p class="myClass visible"> 

if($(".myClass").is(".visible")) { 
    alert("visible"); 
} 

我也試過hasClass,但這似乎並沒有相同的元素上工作。

+1

你糾正代碼工作完美:http://jsfiddle.net/geary/AWcMJ/ –

+0

你熟悉在大多數瀏覽器提供的JavaScript開發工具?他們會對你追蹤這些問題非常有幫助。在你不確定發生了什麼的代碼中,選擇任何一個小提琴並添加一個'debugger;'語句。打開開發人員工具並加載您的頁面。它將停止在可以檢查變量,DOM等的調試器中。您還可以在調試器的JavaScript控制檯中嘗試快速代碼測試。 Chrome開發工具是我的最愛:https://developers.google.com/chrome-developer-tools/ –

+0

另外,正如我在另一評論中提到的,您似乎在混合您的標記名和類名。這是如何發生的,這是非常容易理解的,因爲 - 相當混亂 - 這裏使用的一些函數需要'.'作爲類名,而另一些則不需要。爲了保持它的直觀性:如果你正在編寫一個*選擇器*,就像在一個'$(...)'調用中一樣,你需要在類名上使用'.'前綴,就像在任何CSS選擇器中一樣。 '.is()'方法也需要一個選擇器,所以你需要'.'。但是,某些答案中提出的'.hasClass()'方法使用一個沒有*。前綴的裸類名*。 –

回答

3

使用hasClass

​​
+0

有一個小提琴來證明你的觀點:http://jsfiddle.net/C3U5n/:D – tymeJV

+0

嗯發誓我試過這個,但它沒有奏效。嘗試在提琴似乎允許這個工作。 http://jsfiddle.net/mVLkW/ – Lukasz

+0

啊,似乎問題是當我在一個函數中使用它:http://jsfiddle.net/mVLkW/4/ – Lukasz

1

你錯過了.

if($(".myClass").is(".visible")) { 
    alert("visible"); 
} 
+0

哦對不起,這就是我打算輸入的內容。這似乎也不適用於我。 – Lukasz

+0

@Lukasz那麼你應該有其他問題。檢查您的控制檯是否有錯誤 –

+2

@KevinB'is'返回true/false。 – dfsq

2

hasClass絕對應該工作。您還可以檢查返回的元素集合的長度。

if ($(".myClass.visible").length) { 
    //do stuff 
}