DOMTokenList.forEach()

The forEach() method of the DOMTokenList interface calls the callback given in parameter once for each value pair in the list, in insertion order.

Syntax

tokenList.forEach(callback [, thisArg]);

Parameters

callback
Function to execute for each element, eventually taking three arguments:
currentValue
The current element being processed in the array.
currentIndex
The index of the current element being processed in the array.
listObj
The array that forEach() is being applied to.
thisArg Optional
Value to use as this when executing callback.

Return value

undefined.

Example

In the following example we retrieve the list of classes set on a <span> element as a DOMTokenList using Element.classList. We when retrieve an iterator containing the values using forEach(), writing each one to the <span>'s Node.textContent inside the forEach() inner function.

HTML

<span class="a b c"></span>

JavaScript

let span = document.querySelector("span");
let classes = span.classList;
let iterator = classes.values();

classes.forEach(
  function(value, key, listObj) {
    span.textContent += `${value} ${key}/${this}  ++  `;
  },
  "arg"
);

Result

Polyfill

This polyfill adds compatibility to all Browsers supporting ES5:

if (window.DOMTokenList && !DOMTokenList.prototype.forEach) {
  DOMTokenList.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 'forEach() (as iterable<Node>)' in that specification.
Living Standard Initial definition.

Browser Compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
forEachChrome Full support 45Edge Full support 16Firefox Full support 50IE No support NoOpera Full support 32Safari Full support 10WebView Android Full support 45Chrome Android Full support 45Firefox Android Full support 50Opera Android Full support 32Safari iOS Full support 10Samsung Internet Android Full support 5.0

Legend

Full support
Full support
No support
No support

See also