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.


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);

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.