Oh my.
If you want to create a global "dynamic variable" you should not use var
. In this context it creates a variable that is local inside of the each-function, which is quite useless (and will cause it to be undefined outside of the loop, which is what you're experiencing). Instead you should do it like this:
td.each(function(i){
window['v' + i] = $(this).html();
});
The downside with the above code is that global variables are not really great either.
On the other hand, if you want a local variable (if for example there will be more code in the loop that uses this varaible, then I would do it like this:
td.each(function(i){
var dynVars = {};
dynVars['v' + i] = $(this).html();
alert(dynVars.v4); // use the dynamic variables by saying "dynVars.NAME"
});
You could combine these two solutions, by putting the declaration of dynvars (var dynVars = {}
) in the scope where you want to be able to access your variables instead. As long as it is also visible in this each-callback, everything will work out fine.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…