2012-02-29 19 views
16

Ho una query risposta ajax che uso per impostare le variabili dell'array. Esiste comunque un 'For Loop' per cambiare in #name in modo che non debba scrivere una riga di codice per impostare ogni elemento dell'array.javascript/jQuery - For Loop

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

Così '# event00' potrebbe essere utilizzato in un ciclo for per cambiare etc '#' event01

+0

rilasciare lo zero '0' aggiuntivo. Ti aiuterà molto, confida .. e lascerei fuori il numero 00 e 0 contano tutti insieme. – Relic

+0

Cosa ha funzionato per te? – Greg

risposta

2

.each() dovrebbe funzionare per voi. http://api.jquery.com/jQuery.each/ o http://api.jquery.com/each/ oppure è possibile utilizzare .map.

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

Modifica: Ho rimosso l'aggiunta dello 0 anteposto poiché si consiglia di non utilizzarlo.

Se è necessario disporre di esso uso

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

'.map()' è ancora meglio. –

+0

@ MДΓΓБДLL roger, aggiungerò quello. – Bot

+0

In che modo si riferisce al codice nella domanda, che è _setting_ valori dell'array? Chiamare '.html()' su una riga da sola non fa nulla ... – nnnnnn

34

Utilizzare un normale ciclo for e formattare l'indice da utilizzare nel selettore.

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

Completamente d'accordo, Greg !! Le funzioni native sono sempre più veloci di qualsiasi controparte helper. –

6

E qualcosa di simile?

var arr = []; 

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

Il selettore [attr^=selector] partite elementi su cui l'attributo attr inizia con la stringa data, in questo modo non si cura di numeri dopo "evento".