Web/API/DOMTokenList/forEach

From Get docs

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
DOMThe definition of 'forEach() (as iterable<Node>)' in that specification. Living Standard Initial definition.

Browser Compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
forEach Chrome

Full support 42

Edge

Full support 16

Firefox

Full support 50

IE

No support No

Opera

Full support 32

Safari

Full support 10.1

WebView Android

Full support 45

Chrome Android

Full support 45

Firefox Android

Full support 50

Opera Android

Full support 32

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 5.0

Legend

Full support  
Full support
No support  
No support


See also