我在使用jQuery中的另一个变量创建变量时遇到了一些困难。我不知道如何写出等式的变量。这是我尝试创建的内容:
var $counter= 0;
$('.selector').each(function(){
$counter += 1;
var newVariable-($counter) // this is where I'd like to create the new
// variable with the number from $counter at the end.
});
目标是创建:
newVariable-1
newVariable-2
newVariable-3...
依旧......
答案 0 :(得分:7)
您可以创建一个对象来保存这些值,但不能创建动态变量。
var $counter= 0;
var variableHolder = {};
$('.selector').each(function(){
$counter += 1;
variableHolder["newVariable-"+$counter] = ...
});
或者如果您想创建全局变量(不推荐),您可以使用window
:
var $counter= 0;
$('.selector').each(function(){
$counter += 1;
window["newVariable-"+$counter] = ...
});
答案 1 :(得分:1)
正如其他人所指出的那样,使用{}
和square bracket notation会大大简化这项任务。
这样的事情:
var myobj = {},
prefix = 'my_cool_var';
for(var i = 0, len = 10; i < len; i++) {
myobj[prefix + i] = undefined; // { my_cool_var + i : undefined }
}
// Setters - dot notation and square bracket
myobj.my_cool_var1 = "Hello!";
myobj['my_cool_var2'] = "Hello 2!";
// Getters - dot notation and square bracket
alert(myobj.my_cool_var1); // alerts Hello!
alert(myobj['my_cool_var2']); // alerts Hello 2!
现在,如果你需要在全局范围内公开变量(哎 - 但是,嘿,有时候你得),所以你不需要指定一个对象(myobj
),你可以使用{ {1}}中带有方括号表示法的{1}}。
window
最后,如果你在网上搜索得足够深,那么你会发现for loop
这样的例子:
var prefix = 'my_global_var';
for(var i = 0, len = 10; i < len; i++) {
window[prefix + i] = undefined; // creates global, my_global_var + i = undefined
}
my_cool_var1 = "Hello!";
alert(my_cool_var1); // alerts Hello!
希望这有帮助!
答案 2 :(得分:0)
在这种情况下只需使用json,
var $counter= 0;
var $newVar = {};
$('.selector').each(function(){
$counter += 1;
$newVar['newVariable-'+ ($counter)] = null;
});
因此您可以像$newVar.newVariable-1
,... $newVar.newVariable-N
那样访问它。请注意,这是最佳做法,我们可以通过访问窗口对象进行操作,但不建议这样做。