Comment combiner deux résultats jQuery

151

Comment combinez-vous deux résultats de recherche jQuery? par exemple:

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

De toute évidence, je viens d'inventer cette dernière ligne, mais j'espère que cela rend un peu clair ce que je veux dire. Pour être clair, l'exemple est grandement simplifié, et il pourrait s'agir de n'importe quel ensemble arbitraire dont je parle, ce $('.foo, .bar')n'est donc pas ce que je recherche.

nickf
la source
1
duplication possible de la fusion d'objets jQuery
Gajus

Réponses:

221

Vous pouvez utiliser add () ;

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

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

ou

var $allFoosAndBars = $allFoos.add($allBars);
Simon
la source
28
Notez que dans la ligne "$ all.add ('. Bar');", la variable $ all n'est pas modifiée et ne contient donc pas tous les éléments. Vous devrez à nouveau attribuer la valeur de retour comme "$ all = $ all.add ('. Bar');".
Wolfram
17
Si vous voulez rendre plus évident que vous combinez les deux et que vous n'ajoutez pas un ensemble à l'autre (comme son nom l'indique), vous pouvez à ceci:var $allFoosAndBars = $().add($allFoos).add($allBars);
Chris Bloom
13
La méthode aurait dû être appelée "et" au lieu de "ajouter" - serait plus intuitive.
Faust
1
@Faust Pour ceux qui sont familiers avec les opérations de set, AND et UNION sont très différents.
ricksmt le
1
Pourquoi $ .merge () n'est-il pas mentionné ici?
Ondra Žižka