Cómo combinar dos resultados de jQuery

151

¿Cómo se combinan dos resultados de búsqueda de jQuery? p.ej:

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

Obviamente, acabo de inventar esa última línea, pero espero que aclare lo que quiero decir. Para ser claros, el ejemplo se simplifica enormemente, y podría estar hablando de cualquier conjunto arbitrario, por lo que no$('.foo, .bar') es lo que busco.

nickf
fuente
1
posible duplicado de fusión de objetos jQuery
Gajus

Respuestas:

220

Puedes usar add () ;

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

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

o

var $allFoosAndBars = $allFoos.add($allBars);
Simón
fuente
28
Tenga en cuenta que en la línea "$ all.add ('. Bar');", la variable $ all no cambia y, por lo tanto, no contiene todos los elementos. Debería asignar nuevamente el valor de retorno como "$ all = $ all.add ('. Bar');".
Wolfram
17
Si quieres que sea más evidente que va a combinar los dos y no la adición de un conjunto a otro (como su nombre indica) que pueda para esto:var $allFoosAndBars = $().add($allFoos).add($allBars);
Chris Bloom
13
El método debería haberse llamado "y" en lugar de "agregar", sería más intuitivo.
Faust
1
@Faust Para aquellos familiarizados con las operaciones de configuración, AND y UNION son muy diferentes.
ricksmt
1
¿Por qué $ .merge () no se menciona aquí?
Ondra Žižka