我使用for-in循环来迭代两个元素的数组,但它就像它的循环两次。
我在这里有一个例子:http://jsbin.com/etoyac/8/
答案 0 :(得分:4)
这是因为从getElementsByTagName
返回的结果不是一个简单的数组 - 它是一个 NodeList 而且它是“实时”的。您对DOM所做的更新会立即反映在列表中。
您可以在Array原型上使用“slice”方法将NodeList转换为数组:
var slideArr = [].slice.call(slides, 0);
此外,您应该使用数字索引遍历数组(或NodeList):
for (var slideIndex = 0; slideIndex < slideArr.length; ++slideIndex) {