2009-06-16 29 views
28

Tôi có một mảng các chuỗi có selectors jQuery hợp lệ (ví dụ: ID của các yếu tố trên trang):một chuỗi các chuỗi như một bộ chọn jQuery?

["#p1", "#p2", "#p3", "#p4", "#p5"] 

Tôi muốn chọn các yếu tố với những ID thành một mảng jQuery. Đây có lẽ là tiểu học, nhưng tôi không thể tìm thấy bất cứ điều gì trực tuyến. Tôi có thể có một vòng lặp mà tạo ra một chuỗi "#p1,#p2,#p3,#p4,#p5" mà sau đó có thể được chuyển đến jQuery như một bộ chọn duy nhất, nhưng không có cách nào khác? Không có cách nào để truyền một chuỗi các chuỗi như một bộ chọn?

EDIT: Thực ra, có an answer out there already.

Trả lời

43

Vâng, có của 'tham gia':

["#p1", "#p2", "#p3", "#p4", "#p5"].join(", ") 

EDIT - Thông tin thêm:

Có thể chọn một loạt các yếu tố, vấn đề là ở đây bạn không có những yếu tố nào, chỉ các chuỗi chọn. Bất kỳ cách nào bạn cắt nó, bạn sẽ phải thực hiện một tìm kiếm như .getElementById hoặc sử dụng một jQuery thực tế được chọn.

+0

tham gia() chính xác. Cảm ơn bạn. – montrealist

12

Thử Array.join method:

var a = ["#p1", "#p2", "#p3", "#p4", "#p5"]; 
var s = a.join(", "); 
//s should now be "#p1, #p2, #p3, ..." 
$(s).whateverYouWant(); 
4

Sử dụng phương pháp Array.join tham gia cùng họ cùng nhau

$(theArray.join(',')); 
+0

Hehe, tôi biết tôi sẽ quá chậm trên iphone darn này :-) –

+0

Cảm ơn bạn đã dành thời gian anyway! – montrealist

2

Tôi nghĩ rằng bạn đang tìm kiếm join.

var arr = ["#p1", "#p2", "#p3", "#p4", "#p5"]; 
$(arr.join(",")) 
6

Điều gì về $(foo.join(", "))?

0

ngắn:

["#p1", "#p2", "#p3", "#p4", "#p5"].toArray() 
2

Nếu bạn muốn họ làm một cái gì đó riêng cũng có .each();

Trong ví dụ dưới đây, mỗi p id nhấp chuột làm cho bất kỳ một trong số họ đỏ:

var peas = ['#p1','#p2','#p3','#p4','#p5']; 
$.each(peas, function(i){ 
    $(peas[i]).click(function(){ 
     $(peas[i]).css({'color':'red'}); 
    }); 
}); 

Khi bạn ném 'i' thành một tham số chức năng, nó tìm thấy các giá trị bên trong mảng một cách thích hợp. Khi bạn thực hiện định dạng '.each()' như sau:

$.each(array, function(i){ 
    // any code you wish as long as you have an array selector 
    //$(array[i]).whatever function 
}); 

Ví dụ lớn hơn nữa. Giả sử bạn muốn làm cho P bạn bấm vào màu đỏ, nhưng muốn ps khác trở lại màu mặc định. Chỉ cần tạo một mảng nonPea và thì đấy!

var peas = ['#p1','#p2','#p3','#p4','#p5'] 
, nonPeas = ['#p5, #p2, #p3, #p4' 
       ,'#p1, #p5, #p3, #p4' 
       ,'#p1, #p2, #p5, #p4' 
       ,'#p1, #p2, #p3, #p5' 
       ,'#p1, #p2, #p3, #p4'] 
; 
$.each(peas, function(i){ 
    $(peas[i]).click(function(){ 
     $(peas[i]).css({'color':'red'}); 
     $(nonPeas[i]).css({'color':'black'}); 
    }); 
}); 

Tôi biết ai đó có ý định muốn biết về từng mảng giá trị như bộ chọn jquery. Hy vọng mọi thứ diễn ra tốt đẹp!

Nguồn: jQuery .each()

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