我们的志愿者还没有将这篇文章翻译为 中文 (简体)。加入我们帮助完成翻译!
您也可以阅读此文章的English (US)版。
The forEach()
method of the NodeList
interface calls the callback given in parameter once for each value pair in the list, in insertion order.
Syntax
nodeList.forEach(callback[, thisArg]);
Parameters
callback
- Function to execute for each element, eventually taking 3 arguments:
currentValue
- The current element being processed in the NodeList.
currentIndex
- The index of the current element being processed in the NodeList.
listObj
- The NodeList object that
forEach()
is being applied to.
thisArg
Optional
- Value to use as
this
when executingcallback
.
Return value
Exceptions
None.
Example
var node = document.createElement("div"); var kid1 = document.createElement("p"); var kid2 = document.createTextNode("hey"); var kid3 = document.createElement("span"); node.appendChild(kid1); node.appendChild(kid2); node.appendChild(kid3); var list = node.childNodes; list.forEach( function(currentValue, currentIndex, listObj) { console.log(currentValue + ', ' + currentIndex + ', ' + this); }, 'myThisArg' );
results in:
[object HTMLParagraphElement], 0, myThisArg [object Text], 1, myThisArg [object HTMLSpanElement], 2, myThisArg
Polyfill
This polyfill adds compatibility to all Browsers supporting ES5:
if (window.NodeList && !NodeList.prototype.forEach) { NodeList.prototype.forEach = function (callback, thisArg) { thisArg = thisArg || window; for (var i = 0; i < this.length; i++) { callback.call(thisArg, this[i], i, this); } }; }
Specifications
Specification | Status | Comment |
---|---|---|
DOM The definition of 'NodeList' in that specification. |
Living Standard | Defines NodeList as iterable<Node> |
Web IDL The definition of 'forEach' in that specification. |
Candidate Recommendation | Defines forEach on iterable declarations |
Browser Compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 51 | 50 (50) | No support | 38 | 10 (maybe prior) |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | No support | (Yes) | 50.0 (50) | No support | (Yes) | 10 | 51 |