2011-08-02 48 views
0

所以,我試圖弄清楚這是否可能。我的代碼中有.find(':input:not(button)')函數,我試圖排除button之外的其他內容。所以我正在尋找一種方法來做到這一點:.find(:input:not(button || otherthing)')。這可能嗎?我知道語法不正確,因爲它不起作用,但我希望你們中的一些人知道如何做到這一點。謝謝你的幫助。如何用jQuery:not()函數做「或」語句?

回答

2

你可以使用函數而不是過濾器,例如:

$(element).find('input').not('button').not('otherthing'); 

你也可以做到這一點是要簡單得多:

$(element).find('input:not(button, otherthing)'); 

來源: http://api.jquery.com/not-selector/

+0

該函數也接受逗號分隔的列表。 – BoltClock

0
:not(button):not(otherthing) 

肯定會工作。 jQuery的可以也接受這種語法,但不要把我抱到它:

:not(button,otherthing) 
+0

是的,jQuery接受這種語法,但現在只接受jQuery。建議使用CSS4增強的':not()'僞類來接受簡單/複合選擇器列表。 – BoltClock

0

讓我們做一個小布爾代數好嗎?

~(A OR B) = ~A AND ~B 

所以這相當於

.find('input:not(button)').filter('input:not(otherthing)') 
+1

你的第二個發現應該是一個'.filter',否則你將最終得到一個空集 –

+0

@cwolves:他很好。固定。 – tskuzzy

+0

@RobertPitt:它不怎麼樣?他想匹配那些不是(按鈕或其他)的東西。這與匹配'NOT(button)AND NOT(otherthing)')的東西是一樣的。 – tskuzzy