Oh mon Dieu. Si vous voulez créer une variable dynamique globale, vous ne devez pas utiliser var
. Dans ce contexte, il crée une variable qui est locale à l'intérieur de chaque fonction, ce qui est tout à fait inutile (et le rendra indéfini en dehors de la boucle, ce que vous expérimentez). Au lieu de cela, vous devriez le faire comme ceci:
td.each(function(i){
window['v' + i] = $(this).html();
});
L'inconvénient avec le code ci-dessus est que les variables globales ne sont pas vraiment bien non plus.
D'autre part, si vous voulez une variable locale (si par exemple, il y aura plus de code dans la boucle qui utilise ce varaible, alors je le ferais comme ceci:
td.each(function(i){
var dynVars = {};
dynVars['v' + i] = $(this).html();
alert(dynVars.v4); // use the dynamic variables by saying "dynVars.NAME"
});
Vous pouvez combiner Ces deux solutions, en mettant la déclaration de dynvars (var dynVars = {}
) dans le champ d'application où vous voulez pouvoir accéder à vos variables à la place.Aussi longtemps qu'il est également visible dans ce rappel, tout se passera bien
pourquoi? ce qui se termine est-ce à atteindre? –