需要一些帮助在这里。在数组中存储DOM元素:奇怪的行为?
我创建并将DOM元素存储在数组中。
后来,当我想使用它们时,它们就像不可用,除了最后一个。
下面是一个简单的真的代码来说明: http://jsfiddle.net/rd2nzk4L/
var list = new Array();
// first loop create and store elements
for (i = 1; i <= 5; i++) {
var html = '<div id="test-' + i + '" style="float: left; border: 2px solid black; width: 50px; height: 50px; margin: 5px;">' + i + '</div>';
document.getElementById('test').innerHTML += html;
var element = document.getElementById('test-' + i);
//console.log(element);
list.push(element);
}
// second loop use stored elements
for (index in list) {
//console.log(list[ index ]);
list[ index ].style.backgroundColor = 'yellow';
}
你只能看到最后一个元素变成了黄色。
如果有人有想法,我会非常感激。
谢谢!
不使用......在使用数组,因为它会遍历数组对象的其他属性,除非你做额外的与hasOwnProperty检查等 –