0

除了许多其他a类元素,我还有一个带有标记的链接

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

我想a使用 jQuery 选择每个元素,除了这个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类中的元素之外的所有 a 元素。

谢谢你的帮助 :)

4

2 回答 2

1

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

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

于 2012-09-27T12:12:55.040 回答
-1

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

于 2012-09-27T12:10:42.980 回答