.find()的相反

与.find()相反吗?

其中$('.myclass').except('#myid');

除了带有#myid的元素之外,将使用.myclass获取所有元素。 我知道在这个例子中我可以做$('.myclass[id=myid]') ,但在其他情况下似乎会有所帮助。

谢谢

编辑:

谢谢你的回复! 看起来我只是错过了在文档中看到.not():not()

 $('.myclass').not('#myid'); 

http://api.jquery.com/not/

尝试.not() – 它删除与选择器匹配的任何元素。

$('.myclass').not('#myid')

如果你想要一个字符串选择器,那么使用这个:

 $('.myClass:not(#myid)') 

这使用:not()伪类选择器而不是.not()filter函数。

这似乎是违反直觉的,但是这个单选择器方法有时可能会更慢,因为通过类(没有过滤)获取元素是优化的,它会在这种情况下过滤每个选择器。

替代方法,使用.not()可以更快,具体取决于匹配.myclass的元素.myclass ,因为按ID查找元素是一个非常快速的操作,因此将其从集合中排除相当快。

通用

 $('selector:not(selector)').doStuff() 

具体

 $('.myclass:not(#myid)').doStuff() 

我相信这是正确的解决方案。

访问http://api.jquery.com/not-selector/

有关更多用例和示例。

我想你在找()

是的,有。 您可以使用jQuery的:not selector或.not()函数。 示例代码:

 $('.something').not('.else') $('.something:not(.not-me):not(.neither-me)') 

作为旁注,CSS3具有native :not伪类 。

你错了。 并不是严格地与Find相反,因为不仅搜索当前元素而不搜索后代,而Find()将搜索后代以查看某个条件是否匹配。 与Find相反的是.Not(:has(…))。