【问题标题】:How to combine two jQuery results如何组合两个 jQuery 结果
【发布时间】:2010-09-24 08:22:58
【问题描述】:

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

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

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

【问题讨论】:

标签: jquery


【解决方案1】:

你可以使用add();

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

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

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

【讨论】:

  • 请注意,在"$all.add('.bar');" 行中,变量$all 没有改变,因此不包含所有元素。您需要再次分配返回值,例如“$all = $all.add('.bar');”。
  • 如果您想更清楚地表明您正在将两者结合起来而不是将一组添加到另一组(顾名思义),您可以这样做:var $allFoosAndBars = $().add($allFoos).add($allBars);
  • 该方法应该被称为“and”而不是“add”——这样会更直观。
  • @Faust 对于那些熟悉集合操作的人来说,AND 和 UNION 有很大的不同。
  • 这里为什么没有提到$.merge()?
【解决方案2】:

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

说明:将两个数组的内容合并到第一个 数组。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2022-09-28
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多