2010-11-28 68 views
5

我試圖做到這一點,但沒有運氣到目前爲止沒有人知道如何選擇一個元素點擊 但不包括元素在特定的div如.box和所有內容這div .boxjquery點擊選擇元素,如果它不是在特定的類

小更新: 謝謝你的回覆,但如果我使用:nothasClass它不會保證該foo內的元素不會被選中。像:

<div class=foo>this won't be selected <span>this will</span></div>

回答

8

你可以使用hasClass()方法:

$('a').click(function() { 
    if (!(this).hasClass('foo')) { 
     // the clicked element doesn't have the foo class   
    } 
    return false; 
}); 
+0

正常工作! if(!domEl.closest('div')。hasClass('box')) – Dejan 2010-11-30 14:32:20

5

您還可以使用:不()選擇。

$("#mydiv:not(.box)").click(function(){ 
    //do something 
}); 

,如果您有特定目標的元素,像你想的目標<li>您指定的容器內,那麼這應該是理想的:

$("#mydiv:not(.box)>li").click(function(){ 
    //do something 
}); 

這應該只適用於點擊()函數將<li>子容器的容器是不是得到了.box類。

1

假設你正在尋找錨,這應該工作...

$(":not(.box) a").click(function() { 
    // your code here 
}); 

不過,我會建議重新分解您的標記,以使它更容易些。例如,你可以明確地在每個元素上放置一個可點擊/不可點擊的類。

相關問題