О, мой.
Если вы хотите создать глобальную «динамическую переменную», вы не должны использовать 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 = {}
) в область, где вы хотите получить доступ к своим переменным. Пока это также видно в этом обратном вызове, все будет хорошо работать.
почему? Для чего это нужно? – 2010-12-08 07:26:01