如何组合两个jQuery结果

nic*_*ckf 143 jquery

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

var $allFoos = $('.foo'),
    $allBars = $('.bar')
    $allFoosAndBars = $allFoos + $allBars
;
Run Code Online (Sandbox Code Playgroud)

显然,我刚刚编写了最后一行,但我希望它能让我明白我的意思.需要明确的是,该示例被大大简化,这可能是我说的任意集,所以$('.foo, .bar')不是我后.

Sim*_*mon 205

你可以使用add() ;

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

var $foosAndBars = $foos.add('.bar');
Run Code Online (Sandbox Code Playgroud)

要么

var $allFoosAndBars = $allFoos.add($allBars);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在"$ all.add('.bar');"行中,变量$ all不会更改,因此不会包含所有元素.您需要再次分配返回值,例如"$ all = $ all.add('.bar');". (23认同)
  • 如果你想让你更明显地将两者结合起来而不是将一个集合添加到另一个(顾名思义),你可以这样:`var $ allFoosAndBars = $().add($ allFoos).add( $ allBars);` (13认同)
  • 该方法应该被称为"和"而不是"添加" - 将更直观. (9认同)

Dyl*_*Kas 6

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

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

所以你可以简单地用它来合并两个结果:

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

var $allFoosAndBars = $.merge($allFoos, $allBars);
Run Code Online (Sandbox Code Playgroud)