Oh my.
Если вы хотите создать глобальную "динамическую переменную", вы не должны использовать var
.В этом контексте он создает переменную, которая является локальной внутри каждой функции, что совершенно бесполезно (и приведет к тому, что она будет неопределенной вне цикла, что и происходит).Вместо этого вы должны сделать это так:
td.each(function(i){
window['v' + i] = $(this).html();
});
Недостатком приведенного выше кода является то, что глобальные переменные тоже не очень хороши.
С другой стороны, если вам нужна локальная переменная (если, например, в цикле будет больше кода, использующего эту переменную, я бы сделал это так:
td.each(function(i){
var dynVars = {};
dynVars['v' + i] = $(this).html();
alert(dynVars.v4); // use the dynamic variables by saying "dynVars.NAME"
});
Вы можете объединить эти два решения, поместив объявление dynvars (var dynVars = {}
) в область, в которой вы хотите иметь возможность доступа к вашим переменным. Пока это также видно в этом каждом обратном вызове, все будет работатьв порядке.