So kombinieren Sie zwei jQuery-Ergebnisse

150

Wie kombinieren Sie zwei jQuery-Suchergebnisse? z.B:

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

Natürlich habe ich gerade diese letzte Zeile erfunden, aber ich hoffe, es macht irgendwie klar, was ich meine. Um es klar auszudrücken, das Beispiel ist stark vereinfacht, und es können beliebige Mengen sein, über die ich spreche, also $('.foo, .bar')ist es nicht das, wonach ich suche.

nickf
quelle
1
Mögliches Duplikat des Zusammenführens von jQuery-Objekten
Gajus

Antworten:

219

Sie können add () verwenden ;

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

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

oder

var $allFoosAndBars = $allFoos.add($allBars);
Simon
quelle
27
Beachten Sie, dass in der Zeile "$ all.add ('. Bar');" die Variable $ all nicht geändert wird und daher nicht alle Elemente enthält. Sie müssten den Rückgabewert erneut wie "$ all = $ all.add ('. Bar');" zuweisen.
Wolfram
16
Wenn Sie deutlicher machen möchten, dass Sie die beiden kombinieren und nicht einen Satz zum anderen hinzufügen (wie der Name schon sagt), können Sie var $allFoosAndBars = $().add($allFoos).add($allBars);
Chris Bloom
12
Die Methode sollte "und" statt "hinzufügen" heißen - wäre intuitiver.
Faust
1
@Faust Für diejenigen, die mit Set-Operationen vertraut sind, sind AND und UNION sehr unterschiedlich.
Ricksmt
1
Warum wird $ .merge () hier nicht erwähnt?
Ondra Žižka