2012-01-29 32 views
20

Tôi đang tìm cách kết hợp các biến jquery. Nhìn qua các câu hỏi liên quan, không ai có vẻ đang cố gắng làm những gì tôi muốn.Kết hợp các biến jquery vào một bộ chọn?

$("body, div, p") là một phương pháp kết hợp theo bộ chọn, nhưng sau khi bạn gán công cụ chọn cho biến, bạn kết hợp chúng theo cách tương tự như thế nào?

Đây là một phương pháp tôi đã thử, nhưng không làm cho nó hoạt động. Tôi cũng đã cố gắng đưa chúng vào một mảng (bằng cách thêm dấu ngoặc đơn trước $ body và sau $ p).

$body = $("body"); 
$div = $("div"); 
$p = $("p"); 
$mixed = $($body, $div, $p); 
// $mixed = $("body, div, p"); is NOT what I am looking for 

Trong tập lệnh thực tế của tôi, tôi đã có một số đầu vào <select> được gán cho biến. Tôi muốn đặt chúng thành các nhóm, vì vậy nói rằng tôi có một số <select> có "TRÁI CÂY" và một cái khác có "RAU", tôi có thể đặt cả hai thành một biến jquery gọi là "SẢN XUẤT". Sau đó, nếu tôi cần phải thực hiện bất cứ điều gì trên cả hai, tôi sử dụng sản phẩm để thay thế.

... Điều này có thể chỉ là một cách ngu ngốc để làm mọi thứ.

+0

Whhy bạn không sử dụng '$ ("select")' từ cả hai yếu tố của bạn đều được chọn? – Mike

+1

Điều này có thể chỉ là một cách ngu ngốc để làm những việc, thực sự ... ** =) ** – gdoron

+0

Tôi muốn anh đào chọn những người nên được nhóm lại với nhau. Tôi cho rằng điều này có thể được thực hiện với việc cung cấp cho họ tất cả ID, nhưng vì chúng được thêm vào theo chương trình, tôi muốn thêm chúng mà không sử dụng bất kỳ thuộc tính nào. –

Trả lời

42

Có lẽ bạn đang tìm kiếm .add()?

$mixed = $body.add($div).add($p); 
+0

Bạn phải đùa tôi. Tôi đã tìm kiếm điều này quá lâu ... Tôi không nghĩ nó tồn tại. Tôi chưa bao giờ nghĩ đến việc tìm kiếm cụm từ "thêm". ("Kết hợp" thậm chí không tìm thấy trên trang, fml) –

+0

@ RadGH - Hãy chắc chắn chấp nhận câu trả lời này nếu nó đúng;). –

+0

10 phút chờ đợi! –

0

Tôi cũng đang tìm kiếm nội dung như thế này. Trong trường hợp của tôi, tôi đã có một số đối tượng được truyền vào một hàm chung và một số được tạo trong bộ nhớ và tôi muốn áp dụng cùng một sự kiện nhấp chuột cho tất cả các đối tượng. Cuối cùng tôi đã đi với giải pháp thêm của James ở trên nhưng nghĩ rằng tôi sẽ chia sẻ một lựa chọn khác.

Nếu bạn đặt các đối tượng vào một mảng, bạn có thể sử dụng mỗi trình lặp để thực hiện một hành động trên chúng.

[$body, $div, $p].each(function(i,e) { e.DoSomething(); }); 

Cú pháp này dài hơn và bạn không có đối tượng có thể dùng lại $ nhưng có thể có một số trường hợp hữu ích.

2

Đối với tôi, nó hoạt động tốt trong jQuery 1.10.2 chỉ đơn giản là kết hợp các yếu tố trong một mảng đen trước khi đi qua vào constructor jQuery: $mixed = $([$body, $div, $p]);

+0

Không làm việc cho tôi. Phiên bản 1.11 – Boykodev

Các vấn đề liên quan