2011-12-13 40 views
7

Tôi không chắc chắn nếu "concatenate" là một thuật ngữ chính xác cho nó, nhưng một cái gì đó như thế này:Bộ chọn ghép nối trong jQuery?

$("#a").$("#b").$("#c").$("#d").click(); // click on all of them 

Về cơ bản tôi có một danh sách dài các thứ nhưng tôi không thể áp dụng một lớp đối với họ.

+2

Mã mẫu của bạn về cơ bản là "tìm phần tử #a, sau đó tìm phần tử #b bên trong #a, sau đó tìm #c bên trong #b và #d bên trong #c". Phrogz có giải pháp dưới đây. –

Trả lời

16

Như in CSS, bạn có thể sử dụng dấu phẩy để tách multiple selectors:

$("#a, #b, #c, #d").click(); 

Lưu ý rằng những không phải là cùng một loại selector. Ví dụ:

// Click the menu, all spans in all .foo, and paragraphs after headers 
$("#menu, div.foo span, h1 + p").click(); 

Ngoài ra, nếu bạn đã có các đối tượng jQuery, bạn có thể add() bộ như vậy:

var a = $('#a'), b = $('#b'), c = $('#c'); 
var all = a.add(b).add(c); 
+0

Tôi đã sử dụng giải pháp .add.add của bạn vì tôi thấy chuỗi không thanh lịch. Cảm ơn! – Bill

4
$("#a, #b, #c, #d").click(); 

Nó được gọi là một :-D

1

làm một dấu phẩy

$("#a,#b,#c,#d").click() 
+0

@Phrogz: Vâng. Đó là một lỗi đánh máy nhanh. Tôi vừa sửa nó. – Shyju

2

Bạn có thể nối các bộ chọn bằng dấu phẩy (,). Thử cái này.

$("#a,#b,#c,#d").click();