2010-11-29 104 views
3

我正在實現手風琴風格的行爲,其中只有一個元素可以在一個點上顯示。我認爲實現一個show(e)函數會很簡單,該函數需要顯示一個元素e並隱藏所有內容,但是隱藏所有內容,但是e。它爲我節省了跟蹤顯示哪個元素的麻煩。我可以將show(e)作爲回調附加到手風琴的每個元素上。jquery過濾掉特定元素

爲此,我想唯一的辦法是使用.each()遍歷所有元素和每個元素到e,如果它不等於e,則隱藏它。

但是,我記得有一個jQuery .filter函數(http://api.jquery.com/filter/)但它只匹配元素,而不是相反。 (即,如果我調用該函數,並將它傳遞e它只會匹配e,而不是一切,但e。)

有沒有辦法做到這一點,還是有創建於一般的手風琴任何建議?提前致謝!

回答

3

那麼你應該考慮使用.not()函數。

var excludeTheseDOMElements = $('#something'); 
$('match_something').not(excludeTheseDOMElements).each(function(){ 
    //do stuff here 
}); 

UPDATE:

您還可以使用:not()僞選擇 -

$('match_something:not(#something)').each(function(){ 
    //do stuff here 
}); 
+0

......這是真棒。非常感謝。 (「你可以在3分鐘內接受答案」) – munchybunch 2010-11-29 20:07:40