.find()的相反
与.find()相反吗?
其中$('.myclass').except('#myid');
除了带有#myid的元素之外,将使用.myclass获取所有元素。 我知道在这个例子中我可以做$('.myclass[id=myid]')
,但在其他情况下似乎会有所帮助。
谢谢
编辑:
谢谢你的回复! 看起来我只是错过了在文档中看到.not()
和:not()
。
$('.myclass').not('#myid');
尝试.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(…))。