J'ai une réponse à une requête ajax que j'utilise ensuite pour définir les variables du tableau. Existe-t-il de toute façon d'utiliser une boucle For pour passer à #nom afin que je n'ai pas à écrire une ligne de code pour définir chaque élément du tableau.
array[0]=$('#event00',response).html();
array[1]=$('#event01',response).html();
array[2]=$('#event02',response).html();
array[3]=$('#event03',response).html();
Ainsi, "# event00" pourrait être utilisé dans une boucle for pour passer à "# event01", etc.
Utilisez une boucle for régulière et formatez l'index à utiliser dans le sélecteur.
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());
}
Et quelque chose comme ça?
var arr = [];
$('[id^=event]', response).each(function(){
arr.Push($(this).html());
});
Le [attr^=selector]
le sélecteur correspond aux éléments sur lesquels l'attribut attr
commence par la chaîne donnée, de cette façon vous ne vous souciez pas des nombres après "événement".
.each()
devrait fonctionner pour vous. http://api.jquery.com/jQuery.each/ ou http://api.jquery.com/each/ ou vous pouvez utiliser .map
.
var newArray = $(array).map(function(i) {
return $('#event' + i, response).html();
});
Edit: j'ai supprimé l'ajout du 0 ajouté car il est suggéré de ne pas l'utiliser.
Si vous devez l'avoir, utilisez
var newArray = $(array).map(function(i) {
var number = '' + i;
if (number.length == 1) {
number = '0' + number;
}
return $('#event' + number, response).html();
});