我在所有应用程序中使用以下代码来枚举DOM元素:
var elements = document.querySelectorAll('div');
[].forEach.call(elements, function(element) {
div.style.color = 'green';
});
此代码有效,但[].forEach.call(...)
在大型应用程序中不易阅读。在没有使用定制函数或原型的情况下,ECMA6Script中是否有更简单的DOM枚举原生方式?
答案 0 :(得分:5)
你不会再在ES6中使用forEach
了。您使用for of
loop:
for (let div of document.querySelectorAll('div'))
div.style.color = 'green';
除此之外,您可以使用Array.from
将可迭代对象强制转换为数组,然后在其上调用.forEach
;但实际上对于即将推出的DOM规范,querySelectorAll
将返回以ES6方式从Elements
继承的Array
集合,这是不必要的 - 因此您可以调用.forEach
直接在它上面的方法!
答案 1 :(得分:2)
您可以使用Array.from:
Array.from(elements).forEach(elem => ...)
答案 2 :(得分:1)
在ES6中,您可以使用spread operator:
[...document.querySelectorAll('div')].forEach(e => console.log(e))