Web*_*ner 16 javascript arrays foreach nodelist
您是否看到以下任何问题:
NodeList.prototype.forEach = Array.prototype.forEach;
Run Code Online (Sandbox Code Playgroud)
通常forEach只是数组的属性,但是通过将其设置为所有NodeLists 的属性,在将NodeList循环遍历其节点之前,不需要将a转换为数组forEach.
通过原型扩展DOM的功能通常不是一个好主意,特别是在旧版本的IE(文章)中.
但是,Array.prototype.forEach即使不将其添加到原型链或将您NodeList转换为数组,您也可以使用它:
var list = document.querySelectorAll(".some.query");
Array.prototype.forEach.call(list, function(el){ /* ... */ });
/* or */
var forEach = function(ctn, callback){
return Array.prototype.forEach.call(ctn, callback);
}
forEach(list, function(el){ /* ... */ });
Run Code Online (Sandbox Code Playgroud)
另见MDN:为什么我不能使用forEach或map在...上NodeList.
| 归档时间: |
|
| 查看次数: |
4354 次 |
| 最近记录: |