for循环querySelectorAll

Dan*_*err 11 javascript for-loop mozilla google-chrome selectors-api

Mozilla声称"for for循环将正确地循环NodeList对象".(来源:https://developer.mozilla.org/en-US/docs/Web/API/NodeList)但是,这在Chrome 43中不起作用.这是不正确的文档还是浏览器错误?

复选的示例代码在页面上使用复选框:

var list = document.querySelectorAll( 'input[type=checkbox]' );
for (var item of list) {
  item.checked = true;
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*err 8

编辑:这是在Chrome 51中发布的.

Jake Archibald发布了一个简单的修复:

NodeList.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator]
Run Code Online (Sandbox Code Playgroud)

而对于循环.


Ber*_*rgi 6

文档是正确的,但我不会称之为bug.相反,它是一个"尚未实现的功能".

目前还没有标准,关于DOM应如何与ES6集成的问题仍然存在积极的讨论.请注意,很显然的是 querySelectorAll应该返回可迭代的东西可以被用在for of循环(如普遍期待的要求),但目前还不清楚如何应该发生的(让我们NodeList实现Iterable接口呢?让一些Elements集合的子类Array?).