Cách kết hợp hai kết quả jQuery


150

Làm thế nào để bạn kết hợp hai kết quả tìm kiếm jQuery? ví dụ:

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

Rõ ràng, tôi chỉ tạo nên dòng cuối cùng, nhưng tôi hy vọng nó làm cho nó rõ ràng những gì tôi muốn nói. Để rõ ràng, ví dụ này được đơn giản hóa rất nhiều, và nó có thể là bất kỳ bộ tùy ý nào tôi đang nói đến, vì vậy đó không phải$('.foo, .bar') là những gì tôi đang theo đuổi.


1
có thể trùng lặp các đối tượng jQuery hợp nhất
Gajus

Câu trả lời:


219

Bạn có thể sử dụng add () ;

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

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

hoặc là

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

27
Lưu ý rằng trong dòng "$ all.add ('. Bar');", biến $ all không bị thay đổi và do đó, không chứa tất cả các phần tử. Bạn sẽ cần gán lại giá trị trả về như "$ all = $ all.add ('. Bar');".
Wolfram

16
Nếu bạn muốn làm rõ hơn rằng bạn đang kết hợp cả hai và không thêm bộ này vào bộ kia (như tên ngụ ý), bạn có thể làm điều này:var $allFoosAndBars = $().add($allFoos).add($allBars);
Chris Bloom

12
Phương thức nên được gọi là "và" thay vì "thêm" - sẽ trực quan hơn.
Faust

1
@Faust Đối với những người quen thuộc với các thao tác thiết lập, AND và UNION rất khác nhau.
ricksmt

1
Tại sao $ .merge () không được đề cập ở đây?
Ondra Žižka
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.