2

我正在使用 for-in 循环来迭代两个元素的数组,但这就像它循环两次一样。

我在这里有一个例子:http: //jsbin.com/etoyac/8/

4

1 回答 1

4

这是因为返回的结果getElementsByTagName不是一个简单的数组——它是一个NodeList并且它是“活的”。您对 DOM 所做的更新会立即反映在列表中。

您可以使用 Array 原型上的“slice”方法将 NodeList 转换为数组:

var slideArr = [].slice.call(slides, 0);

此外,您应该使用数字索引遍历数组(或 NodeList):

for (var slideIndex = 0; slideIndex < slideArr.length; ++slideIndex) {
于 2012-07-12T00:06:29.080 回答