【发布时间】:2010-11-01 05:41:09
【问题描述】:
我有
var $set = $('.foo,.bar').filter(
function() {return $(this).parents('.baz').length < 1;});
作为选择类为foo 或bar 的所有元素的一种方式,这些元素不是类为baz 的元素的后代。是否有一个选择器可以在不需要过滤 lambda 的情况下完成相同的事情?
<div class='foo'/><!--match this-->
<div class='bar'/><!--match this-->
<div class='baz'>
<div class='foo'/> <!--don't match this-->
</div>
【问题讨论】:
-
您可以使用
closest方法而不是parents使其更快。closest一旦找到匹配元素就停止查找,而parents沿着 DOM 树向上移动到文档的根元素以查找匹配元素。
标签: jquery jquery-selectors css-selectors