Хранение ссылочных элементов DOM в массиве Javascript - PullRequest
3 голосов
/ 24 мая 2010

Уважаемые эксперты, я пытался динамически генерировать элементы DOM, используя JS.

Я прочитал из книги Дугласа Крокфорда, что DOM очень и очень плохо структурирован.

В любом случае, я хотел бы создать несколько элементов DIVISION и сохранить ссылку в массиве, чтобы к ней можно было получить доступ позже.

Вот код

for(i=0; i<3; i++) {
    var div = document.body.appendChild(document.createElement("div"));
    var arr = new Array();
    arr.push(div);
}

Как-то это не сработает ..... Создан только 1 элемент div.Когда я использую arr.length для проверки кода, в массиве есть только 1 элемент.

Есть ли другой способ сделать это?

Заранее спасибо

Ответы [ 2 ]

13 голосов
/ 24 мая 2010

Вы воссоздаете массив с каждой итерацией (и таким образом очищаете его).

Я думаю, вы хотите что-то подобное.

var arr = []; // more succinct version of new Array();

for (var i = 0; i < 3; i++) {
    var div = document.body.appendChild(document.createElement('div'));
    arr.push(div);        
};
3 голосов
/ 24 мая 2010

Вы создаете отдельный массив при каждом запуске цикла.
Поэтому каждый экземпляр массива

Вам необходимо переместить переменную arr за пределы цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...