Як поєднати два результати jQuery


151

Як ви поєднуєте два результати пошуку jQuery? наприклад:

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

Очевидно, я щойно склав цей останній рядок, але сподіваюся, що це дає зрозуміти, що я маю на увазі. Щоб було зрозуміло, приклад значно спрощений, і це можуть бути будь-які довільні множини, про які я говорю, тому $('.foo, .bar')це не те, про що я пішов.


1
можливий дублікат об’єднаних об’єктів jQuery
Gajus

Відповіді:


221

Ви можете використовувати add () ;

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

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

або

var $allFoosAndBars = $allFoos.add($allBars);

28
Зауважте, що у рядку "$ all.add ('. Bar');", змінна $ all не змінюється і, таким чином, не містить усіх елементів. Вам потрібно буде призначити повернене значення знову, як "$ all = $ all.add ('. Bar');".
Вольфрам

17
Якщо ви хочете зробити більш очевидним, що ви поєднуєте ці два і не додаєте один набір до іншого (як випливає з назви), ви можете до цього:var $allFoosAndBars = $().add($allFoos).add($allBars);
Кріс Блум,

13
Метод повинен був називатися "і" замість "додати" - був би більш інтуїтивним.
Фауст

1
@Faust Для тих, хто знайомий з набором операцій, AND і UNION дуже різні.
ricksmt

1
Чому тут не згадується $ .merge ()?
Ондра Жижка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.