提问人:nickf 提问时间:11/27/2008 最后编辑:Zzenickf 更新时间:10/14/2020 访问量:51651
如何合并两个 jQuery 结果
How to combine two jQuery results
问:
如何合并两个jQuery搜索结果?例如:
var $allFoos = $('.foo'),
$allBars = $('.bar')
$allFoosAndBars = $allFoos + $allBars;
显然,我只是编造了最后一行,但我希望它能让我的意思更清楚。需要明确的是,这个例子被大大简化了,它可以是我正在谈论的任何任意集合,所以不是我所追求的。$('.foo, .bar')
答:
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
上一个:在字段名称周围使用反引号
下一个:XPath 选择多个标签
评论