jQuery .not()方法是否需要CSS Selector

时间:2012-09-27 12:06:58

标签: jquery html jquery-selectors

除了一些其他a类元素外,我还有一个标记链接

<a class="editLink" href="www.somelink.com"> Edit <\a>

我希望使用jQuery选择每个a元素,除了这个editLink类中的元素。

所以我使用a.not(".editLink")作为jQuery选择器工作正常。但是我注意到,当a.not("editLink")a.not("#editLink")

时,这也有效

就像jQuery忽略了作为not()方法参数的一部分传递的CSS。文档建议有必要传递id / class CSS,但是我可以告诉它是不必要的。

任何人都可以对此有所了解吗?我是愚蠢还是有一些魔法发生?

由于


更新 - 好吧我觉得我的语法出错了。我在做:

$("p, a.not(".editLink")").click()...

什么时候应该

$("p, a").not("a.editLink").click()...

所以我很糟糕。有趣的是,尽管原作确实选择了除editLink类中的所有元素之外的所有元素。

感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

它需要一个选择器字符串。它只是将"editLink"视为表示名为<editLink>的元素的选择器字符串,显然您的<a>元素不是。

所以,你的代码a.not("editLink")“工作”......不是你想象的那样:不是过滤掉那些没有带有那个名字的类的元素,它什么也没做,因为没有<a>元素是<editLink>个元素。而且,如果您的<a>个元素都没有具有该名称的ID,那么a.not("#editLink")也是如此。

答案 1 :(得分:-1)

你也可以像这样使用CSS:$('a:not(.editLink)')