亲爱的专家,我试图使用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个元素。
还有另一种方法可以实现这个目标吗?
提前致谢
答案 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
变量移出循环。