2012-02-29 34 views
16

Tôi có truy vấn ajax truy vấn mà sau đó tôi sử dụng để đặt các biến mảng. Có cách nào để sử dụng 'For Loop' để thay đổi thành #name để tôi không phải viết ra một dòng mã để đặt từng phần tử mảng.javascript/jQuery - Đối với Vòng

array[0]=$('#event00',response).html(); 
array[1]=$('#event01',response).html(); 
array[2]=$('#event02',response).html(); 
array[3]=$('#event03',response).html(); 

Vì vậy, '# event00' có thể được sử dụng trong một vòng lặp for để thay đổi vv '# event01'

+0

thả thêm số không '0'. Nó sẽ giúp bạn rất nhiều, tin tưởng .. và tôi sẽ bỏ số 00 và 0 tất cả lại với nhau. – Relic

+0

Điều gì đã kết thúc với bạn? – Greg

Trả lời

2

.each() nên làm việc cho bạn. http://api.jquery.com/jQuery.each/ hoặc http://api.jquery.com/each/ hoặc bạn có thể sử dụng .map.

var newArray = $(array).map(function(i) { 
    return $('#event' + i, response).html(); 
}); 

Chỉnh sửa: Tôi đã xóa thêm 0 được thêm vào trước vì đề xuất không được sử dụng.

Nếu bạn phải có nó sử dụng

var newArray = $(array).map(function(i) { 
    var number = '' + i; 
    if (number.length == 1) { 
     number = '0' + number; 
    } 
    return $('#event' + number, response).html(); 
}); 
+2

'.map()' thậm chí còn tốt hơn. –

+0

@ MДΓΓБДLL roger, tôi sẽ thêm vào đó. – Bot

+0

Làm cách nào điều này liên quan đến mã trong câu hỏi, đó là _setting_ giá trị mảng? Gọi '.html()' trên một dòng tự nó không làm bất cứ điều gì ... – nnnnnn

34

Sử dụng thường xuyên cho vòng lặp và định dạng chỉ số được sử dụng trong bộ chọn.

var array = []; 
for (var i = 0; i < 4; i++) { 
    var selector = '' + i; 
    if (selector.length == 1) 
     selector = '0' + selector; 
    selector = '#event' + selector; 
    array.push($(selector, response).html()); 
} 
+0

Hoàn toàn đồng ý với Greg !! Các hàm gốc luôn nhanh hơn bất kỳ đối tác trợ giúp nào. –

6

Điều gì tương tự?

var arr = []; 

$('[id^=event]', response).each(function(){ 
    arr.push($(this).html()); 
}); 

Các [attr^=selector] chọn phù hợp với các yếu tố trên mà thuộc tính attr bắt đầu với chuỗi cho trước, như vậy bạn không quan tâm đến những con số sau "sự kiện".

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