Jak połączyć dwa wyniki jQuery

151

Jak połączyć dwa wyniki wyszukiwania jQuery? na przykład:

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

Oczywiście, właśnie wymyśliłem ostatnią linijkę, ale mam nadzieję, że to trochę wyjaśnia, co mam na myśli. Żeby było jasne, przykładem jest znacznie uproszczone, a to może mieć dowolną zestawy mówię, więc $('.foo, .bar')to nie to, co ja jestem po.

nickf
źródło
1
możliwy duplikat scalania obiektów jQuery
Gajus

Odpowiedzi:

221

Możesz użyć add () ;

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

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

lub

var $allFoosAndBars = $allFoos.add($allBars);
Szymon
źródło
28
Zwróć uwagę, że w wierszu "$ all.add ('. Bar');" zmienna $ all nie jest zmieniana, a zatem nie zawiera wszystkich elementów. Konieczne byłoby ponowne przypisanie wartości zwracanej, np. „$ All = $ all.add ('. Bar');”.
Wolfram,
17
Jeśli chcesz, aby było bardziej oczywiste, że łączysz te dwa elementy i nie dodajesz jednego zestawu do drugiego (jak sugeruje nazwa), możesz to zrobić:var $allFoosAndBars = $().add($allFoos).add($allBars);
Chris Bloom
13
Metoda powinna się nazywać „i” zamiast „add” - byłaby bardziej intuicyjna.
Faust
1
@Faust Dla tych, którzy są zaznajomieni z operacjami na zbiorach, AND i UNION są bardzo różne.
ricksmt
1
Dlaczego nie wspomniano tutaj o $ .merge ()?
Ondra Žižka