我正在实施手风琴式的行为,其中一个点只能显示一个元素。我认为实现一个show(e)
函数是简单的,它会显示一个元素e
并隐藏所有内容但e
。它省去了跟踪显示哪个元素的麻烦。我可以将show(e)
作为回调附加到手风琴的每个元素。
为此,我认为唯一的方法是使用.each()
遍历所有元素,将每个元素与e
进行比较,如果它不等于{{1}则将其隐藏}}
但是,我记得有一个jQuery e
函数(http://api.jquery.com/filter/),但它只与元素匹配,而不是相反。 (即如果我调用该函数并将其传递给.filter
,它将仅匹配e
而不是所有内容但e
。)
有没有办法这样做,或者是否有任何关于创建手风琴的建议?提前谢谢!
答案 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
});