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


151

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

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

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


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 () здесь не упоминается?
Ондра Жижка
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.