我想用变量名创建一个新变量, 例如:
function preloader(imglist) {
var imgs = imglist.split("|");
for (i in imgs) {
var img_{i} = new Image; //this is the line where i sucked in!
img_{i}.src = imgs[i]; //another line where i sucked in!
}
}
preloader("asd.jpg|qwe.jpg|dorama.png");
我尝试使用数组,但是,嗯......我怎么说...
var qwe = new Array();
qwe[1] = "asd"; //or not! whatever...
var qwe[1] = new Image; // it didnt work!
在php中你可以这样使用:
$var1 = "test";
$var2_{$var1} = "test last";
echo $var2_test; //or...
echo $var2_{$var1};
答案 0 :(得分:2)
您不需要在此处执行此操作,可以存储和覆盖每个Image
以获得相同的预加载效果,但这只会起作用:
function preloader(imglist) {
var imgs = imglist.split("|");
for (var i=0; i<imgs.length; i++) {
new Image().src = imgs[i];
}
}
请注意,我从for in
循环更改了此内容,在迭代数组(不枚举)时应使用正常的索引for
循环{} {} {} {{}}} CMS这更详细。
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用Eval()
功能实现目标,如下所示;
var data = "testVariable";
eval("var temp_" + data + "= new Array();");
temp_testVariable[temp_testVariable.length]="Hello World";
alert("Array Length: " + temp_testVariable.length);
alert("Array Data: " + temp_testVariable[0]);
当然,这并不意味着这是正确的解决方案。我刚刚提供了有关能力的信息。
以下是包含上述示例的article以及使用Window
对象的替代解决方案。