2012-02-29 20 views
16

Tengo una consulta de respuesta ajax que luego utilizo para establecer las variables de la matriz. ¿Hay alguna forma de usar un 'For Loop' para cambiar a #name para que no tenga que escribir una línea de código para establecer cada elemento de la matriz.javascript/jQuery - For Loop

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

Así '# event00' podrían utilizarse en un bucle para cambiar a etc '#' event01

+0

suelte el cero adicional '0'. Te ayudará mucho, confía ... y dejaría de lado el 00 y 0 contar todos juntos. – Relic

+0

¿Qué terminó trabajando para ti? – Greg

Respuesta

2

.each() debería funcionar para usted. http://api.jquery.com/jQuery.each/ o http://api.jquery.com/each/ o puede usar .map.

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

Editar: Eliminé la adición del 0 antepuesto, ya que se sugiere no usarlo.

Si debe tener que usar

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

'.map()' es aún mejor. –

+0

@ MДΓΓБДLL roger, voy a agregar eso. – Bot

+0

¿Cómo se relaciona esto con el código en la pregunta, que es _setting_ array values? Llamar a '.html()' en una línea sola no hace nada ... – nnnnnn

34

Utilice un habitual para el lazo y el formato del índice que se utilizará en el selector.

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

Totalmente de acuerdo Greg! Las funciones nativas siempre son más rápidas que cualquier contraparte auxiliar. –

6

¿Qué tal algo así?

var arr = []; 

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

El selector [attr^=selector] partidos elementos en los que el atributo attr comienza con la cadena dada, de esa manera no se preocupan por los números después de "evento".