2015-10-28 42 views
0

在我的網頁,我目前正在檢查是否正在使用一個CSS類一個,像這樣:使用jQuery,以確定是否一個div的孩子們有一個CSS類

if (!$('*').hasClass("my-special-class")) { 

的上面的作品,但它檢查頁面上的每個元素。實際上,我只需要檢查特定的div(id ='mydiv')及其子元素,但我不太確定要使用哪種選擇器,並且會歡迎一個建議?

回答

3

所有你需要做的是使用選擇本身在if聲明

if($('.my-special-class').length > 0){ 
    //element with this class exists - do something 
} 

這比較將搜索任何元素的DOM與類my-special-class。如果無法找到該元素,那麼長度返回爲0

另外,如果你想在一定元素中找到它,你可以修改你的選擇 -

if($('#myDiv .my-special-class').length > 0){ 
    //element exists in #myDiv - do something 
} 

這個選擇的工作方式相同,任何CSS選擇器的工作原理,中myDiv任何兒童my-special-class將被選中

1

使用

$('#myID').find(".my-special-class").length 

它將返回0,如果有與父DIV中該類沒有元素。

1
if ($('#yourIDorClass').children().length > 0) { 
    // do something 
} 

這應該有效。 children()函數返回一個包含子元素的JQuery對象。所以你只需要檢查大小,看看它是否至少有一個孩子。

1

,你必須使用類似這樣的

$('#mydiv *').hasClass("my-special-class") 

如果mydiv的任何子元素正在使用該類,則返回true;如果未使用,則返回false。

0

它檢查您的HTML頁面上該類的所有內容的原因是因爲您在您的jQuery選擇器中使用'*'

如果你想要的目標與jQuery特定的div只是改變你的代碼看起來像:

if (!$('#myDiv').hasClass("my-special-class")) { 
    ... 
} 
+1

它將只檢查是否myDiv具有類我的特殊班,但不是所有具有我特級的孩子元素 – Jayababu

1
$('#myDiv .my-special-class').length 

應該做的工作:-)

相關問題