在Javascript数组中存储DOM引用元素

时间:2010-05-23 23:50:00

标签: javascript dom

亲爱的专家,我试图使用JS动态生成DOM元素。

我从Douglas Crockford的书中读到,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 个答案:

答案 0 :(得分:13)

每次迭代都会重新创建数组(从而消隐它)。

我想你想要这样的东西。

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

答案 1 :(得分:3)

每次循环运行时,您都会创建一个单独的数组 因此,每个数组实例

您需要将arr变量移出循环。