使用jquery not运算符

我有这样的设置。

var element = $(".module-panel", this.el); $('.module-panel:not('+element+')').hide(); 

我想要做的是用类.module-panel隐藏所有div,除了存储在var元素中的那个。

最简单的方法是使用.not()

 var element = $(".module-panel", this.el); $('.module-panel').not(element).hide(); 

使用:not()完全是可能的 ,虽然差别很小,但如果有多个元素匹配,它可能会对有利的CSS3选择器产生影响:not()。

jQuery创建了一个方法 .not(),它过滤掉传递给它的任何元素。 CSS3有一个伪选择器 :not()允许浏览器完成工作,使其稍快,但不是多function的。

测试结果如下: http : //jsfiddle.net/iredmedia/jPNYK/

查询不起作用的原因是因为您将jQuery对象连接到查询字符串中 。 为了使您的查询有效,您必须将其传递给特定的元素id / class 字符串 ,如

 var element = '.doNotReturn', excluded = $('#eltFamily:not(' + element + ')').nextMethod(); 

希望这有助于你理解:not()vs .not();

你可以使用.not()

 var element = $(".module-panel", this.el); $('.module-panel').not(element).hide(); 

你需要jquery 1.4或更高版本,因为element是一个jquery对象:

.not(jQuery对象)

jQuery对象 – 一个现有的jQuery对象,用于匹配当前的元素集。