2013-04-09 106 views
0

我有一個jquery選擇器,我想要更改,以便它不會選擇<div id="divA"></div>更改jquery選擇器不選擇特定的div ID

繼承人的當前選擇:

$('ul.toggle a').on('click', function() { 
    //does some work 
}); 

我想$('ul.toggle a [id!=divA]')但thows錯誤。
此選擇器的預期格式是什麼?

回答

8

您可以使用:not從匹配元素集合中移除元素。

$("ul.toggle a:not('#mhs-link')") 
+0

我喜歡這個方法好 - 不知道爲什麼其他人來首先想到:P – Lix 2013-04-09 17:48:33

+0

可能是因爲'。不是()'通常更具可讀性 – 2013-04-09 17:49:34

+1

@kev - 我不認爲任何的他們太可讀 - 他們只是醜化選擇器(海事組織)。在我發現自己需要從選擇器中僅排除一個特定元素的情況下,通常是因爲我錯誤地構造了某些東西...... – Lix 2013-04-09 17:51:04

5

如何這 -

$('ul.toggle a').not('#divA') 

.not()功能只需去除元素的前一個列表中的元素。由於一些漂亮的功能鏈接的,你可以插入到您當前的定義 -

$('ul.toggle a').not("#divA").on('click', function() { 
    //does some work 
}); 

參考

  • not() - 刪除從匹配的元素集合的元素。