如何组合 jQuery find() 和 filter() 的结果



假设我编写了一个 DOM 片段:

var dom = $("
    <div id='root' class='abc'>
       <div id='child1' class='xxx'>no-match</div>
       <div id='child2' class='abc'>match!</div>
       <div id='child3' class='xxx'>no-match</div>
    </div>
");

我想检索带有".abc"的所有元素(即 #root 和 #child2)

dom.find('.abc') 将返回所有匹配的子元素(即 Just #child2)
dom.filter('.abc') 将返回所有匹配的根元素(即 #root)

我怎样才能:
- 拨打一个同时找到 #root 和 #child2 的电话,或者
- 组合 find() 和 filter()
的结果

我看过其他关于"组合"结果的帖子,例如:如何组合两个jQuery结果但这并不是真正的"组合",而是"将更多结果附加到预先存在的结果中"。

我真正想做的是类似于$.extend()

var one = dom.find('.abc');
var two = dom.filter('.abc');
var three = combine(one, two);
// or one.somefcn(two); // One is augmented
// or three = one.somefcn(two); // 

任何信息/想法将不胜感激

您可以使用

add()来组合选择器:

var $all = dom.find('.abc').add(dom.filter('.abc'));

使用 .add() 组合选择器。

将元素添加到匹配的元素集。

var added = dom.find('.abc').add(dom.filter('.abc'));

最新更新