Como combinar dois resultados do jQuery

151

Como você combina dois resultados de pesquisa do jQuery? por exemplo:

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

Obviamente, acabei de inventar a última linha, mas espero que isso deixe claro o que quero dizer. Para ser claro, o exemplo é bastante simplificado e pode ser qualquer conjunto arbitrário de que estou falando, não$('.foo, .bar') é o que estou procurando.

nickf
fonte
1
possível duplicata de Mesclando objetos jQuery
Gajus

Respostas:

220

Você pode usar add () ;

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

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

ou

var $allFoosAndBars = $allFoos.add($allBars);
Simon
fonte
28
Observe que na linha "$ all.add ('. Bar');", a variável $ all não é alterada e, portanto, não contém todos os elementos. Você precisaria atribuir o valor de retorno novamente como "$ all = $ all.add ('. Bar');".
Wolfram
17
Se você quiser tornar mais aparente que está combinando os dois e não adicionando um conjunto ao outro (como o nome indica), você pode:var $allFoosAndBars = $().add($allFoos).add($allBars);
Chris Bloom
13
O método deveria ter sido chamado "e" em vez de "adicionar" - seria mais intuitivo.
Faust
1
@Faust Para aqueles familiarizados com operações definidas, AND e UNION são muito diferentes.
ricksmt
1
Por que $ .merge () não é mencionado aqui?
Ondra Žižka