jquery过滤掉特定元素

时间:2010-11-29 19:55:58

标签: javascript jquery

我正在实施手风琴式的行为,其中一个点只能显示一个元素。我认为实现一个show(e)函数是简单的,它会显示一个元素e并隐藏所有内容但e。它省去了跟踪显示哪个元素的麻烦。我可以将show(e)作为回调附加到手风琴的每个元素。

为此,我认为唯一的方法是使用.each()遍历所有元素,将每个元素与e进行比较,如果它不等于{{1}则将其隐藏}}

但是,我记得有一个jQuery e函数(http://api.jquery.com/filter/),但它只与元素匹配,而不是相反。 (即如果我调用该函数并将其传递给.filter,它将仅匹配e而不是所有内容但e。)

有没有办法这样做,或者是否有任何关于创建手风琴的建议?提前谢谢!

1 个答案:

答案 0 :(得分:3)

那么你应该考虑使用.not()函数。

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

更新:

您还可以使用:not()伪选择器 -

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