2014-08-29 4 views
0

Создание статических переменных не является вариантом в этом случае, потому что это займет много времени и неэффективно для того, что им нужно выполнить. У меня есть Array с изображениями, и я пытаюсь создать способ сделать divs в соответствии с длиной массива. 1,2,3,4 и т.д.Динамические созданные переменные внутри цикла for, Javascript

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'); 

} 

Похоже, что это не работает по какой-либо причине. Я также попытался создать массив/список div вне цикла for.

var div = []; 

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

} 

Все еще не работает. Я не знаю, почему это не работает. Только для Javascript

EDIT: (не работает) Я имею в виду, что это дает мне синтаксическую ошибку.

+0

определить «не работает». – Pinoniq

+0

Удалите 'var' внутри цикла. –

+0

Вы действительно создали объект под названием 'div'? – Andy

ответ

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.

+0

Чтобы уточнить, проблема заключается не в том, что он уже объявлен, 'var div [' является просто недопустимым синтаксисом. –

+0

@FelixKling обновил мой ответ. – Mritunjay

1
i < totalimages 

не

i > totalimages 

Убедитесь, что вы не используете var внутри массива, если вы присваиваете новые значения:

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

DEMO

+0

Да, но это все еще доцентная проблема с динамическими переменными. – Nicco

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')); 
} 
Смежные вопросы