在for循环中动态创建变量,Javascript

时间:2014-08-29 13:15:11

标签: javascript

在这种情况下,创建静态变量不是一个选项,因为它会花费很长时间而且对我想要完成的事情无效。我有一个Array图像,我试图根据数组的长度创建一个div的方法。 1,2,3,4等。

var images = ['image1.JPG', 'image2.JPG', 'image3.JPG'];
var totalimages = images.length;

这将导致array长度为3.我想为此创建3个变量。

for (var i = 0; i > totalimages; i++){
  var div[i] = document.createElement('div');

}

这似乎不是出于某种原因而起作用。我试图在for循环之外创建一个div数组/列表。

var div = [];

for (var i = 0; i > totalimages; i++){
  var div[i] = document.createElement('div');

}

仍然无法正常工作。我不知道为什么这不起作用。仅限Javascript

编辑:(不工作)我的意思是它给了我语法错误。

3 个答案:

答案 0 :(得分:2)

您已经定义了div。在循环中你不应该再说var div

BTW var div[会导致语法错误。

使用此

div[i] = document.createElement('div');

而不是

var div[i] = document.createElement('div');

任何方式我都喜欢在那个地方说这个

div.push(document.createElement('div'));

这会导致i > totalimages一个不定式循环,比如说i < totalimages

答案 1 :(得分:1)

i < totalimages

<强>不

i > totalimages

如果您要分配新值,请确保您不在数组中使用var

var div = [];
for (var i = 0; i < totalimages; i++){
  div[i] = document.createElement('div');
}

DEMO

答案 2 :(得分:0)

简而言之:

var images = ['image1.JPG', 'image2.JPG', 'image3.JPG'];
var totalimages = images.length;
var div = [];

for (var i = 0; i < totalimages; i++){
  div.push(document.createElement('div'));
}