var list= document.getElementsByClassName("events");
for (var i = 0; i < list.length; i++) {
console.log(list[i].id); //second console output
}
for/in用于迭代对象的属性。这并不意味着迭代HTMLCollection所在的数组或类似数组的对象。我只是在Chrome中尝试了这一点,并按迭代的方式迭代它,它将检索列表中的项目(索引0,1,2等),但也会检索length和item属性。该for/in迭代根本不会对的HTMLCollection工作。在Firefox中,for/in迭代将返回这些项目(对象的所有可迭代属性):012itemnamedItem@@iteratorlength可以看到为什么想要使用,for (var i = 0; i < list.length; i++)所以只是得到0,1并2在迭代中。添加到ES6是Array.from()将一个类似数组的结构转换为一个实际的数组。这使得人们可以像这样直接枚举列表: