Как совместить два результата jQuery

151

Как объединить два результата поиска jQuery? например:

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

Очевидно, я только что составил эту последнюю строчку, но я надеюсь, что она прояснит, что я имею в виду. Чтобы быть ясным, пример очень упрощен, и это могут быть любые произвольные множества, о которых я говорю, так что $('.foo, .bar')это не то, что мне нужно.

nickf
источник
1
возможный дубликат объектов слияния jQuery
Gajus

Ответы:

221

Вы можете использовать add () ;

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

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

или

var $allFoosAndBars = $allFoos.add($allBars);
Саймон
источник
28
Обратите внимание, что в строке «$ all.add ('. Bar');» переменная $ all не изменяется и, следовательно, не содержит все элементы. Вам нужно будет снова присвоить возвращаемое значение, например «$ all = $ all.add ('. Bar');».
Вольфрам
17
Если вы хотите сделать более очевидным, что вы комбинируете два, а не добавляете один набор в другой (как следует из названия), вы можете сделать следующее:var $allFoosAndBars = $().add($allFoos).add($allBars);
Крис Блум
13
Метод должен был называться «а» вместо «добавить» - был бы более интуитивным.
Фауст
1
@Faust Для тех, кто знаком с операциями над множествами, AND и UNION очень разные.
Риксм
1
Почему $ .merge () здесь не упоминается?
Ондра Жижка