如何合并两个 jQuery 结果

How to combine two jQuery results

提问人:nickf 提问时间:11/27/2008 最后编辑:Zzenickf 更新时间:10/14/2020 访问量:51651

问:

如何合并两个jQuery搜索结果?例如:

var $allFoos = $('.foo'),
    $allBars = $('.bar')
    $allFoosAndBars = $allFoos + $allBars;

显然,我只是编造了最后一行,但我希望它能让我的意思更清楚。需要明确的是,这个例子被大大简化了,它可以是我正在谈论的任何任意集合,所以不是我所追求的。$('.foo, .bar')

jquery

评论

1赞 Gajus 4/6/2014
合并 jQuery 对象的可能重复项

答:

239赞 Simon 11/27/2008 #1

你可以使用 add();

var $foos = $('.foo');

var $foosAndBars = $foos.add('.bar');

var $allFoosAndBars = $allFoos.add($allBars);

评论

30赞 Wolfram 1/10/2011
请注意,在“$all.add('.bar');”行中,变量 $all 没有更改,因此不会包含所有元素。您需要再次分配返回值,例如“$all = $all.add('.bar');”。
20赞 Chris Bloom 4/27/2012
如果你想更明显地表明你正在将两者结合起来,而不是将一个集合添加到另一个集合中(顾名思义),你可以这样做:var $allFoosAndBars = $().add($allFoos).add($allBars);
13赞 Faust 11/8/2014
该方法应该称为“and”而不是“add”——这样会更直观。
1赞 ricksmt 7/16/2015
@Faust 对于那些熟悉集合操作的人来说,AND 和 UNION 非常不同。
1赞 Ondra Žižka 12/1/2015
为什么这里没有提到 $.merge()?
6赞 Dylan KAS 10/14/2020 #2

另一种解决方案是使用 jQuery.merge() (jQuery > 1.0)

描述:将两个数组的内容合并到第一个数组中 数组。

因此,您可以简单地使用它来合并两个结果:

var $allFoos = $('.foo');
var $allBars = $('.bar');

var $allFoosAndBars = $.merge($allFoos, $allBars);

评论

0赞 freefaller 12/8/2022
请注意,这是破坏性的,因此将被合并并返回......这可能不是你想要的$.merge$allBars$allFoos$allFoosAndBars