วิธีรวมผลลัพธ์ 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');"
Wolfram

17
หากคุณต้องการให้ชัดเจนยิ่งขึ้นว่าคุณกำลังรวมสองชุดเข้าด้วยกันและไม่เพิ่มชุดหนึ่งเข้ากับอีกชุดหนึ่ง (ดังที่ชื่อบอกถึง) คุณสามารถทำได้:var $allFoosAndBars = $().add($allFoos).add($allBars);
Chris Bloom

13
ควรเรียกวิธีการนี้ว่า "และ" แทนที่จะ "เพิ่ม" - จะใช้งานง่ายกว่า
เฟาสต์

1
@Faust สำหรับผู้ที่คุ้นเคยกับการปฏิบัติการที่กำหนดไว้ AND และ UNION นั้นแตกต่างกันมาก
ricksmt

1
เหตุใด $ .merge () ไม่ได้กล่าวถึงที่นี่
Ondra Žižka
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.