--- title: DOMTokenList slug: Web/API/DOMTokenList tags: - API - DOM - DOMTokenList - Interface - Reference translation_of: Web/API/DOMTokenList ---
{{APIRef("DOM")}}

The DOMTokenList interface represents a set of space-separated tokens. Such a set is returned by {{domxref("Element.classList")}}, {{domxref("HTMLLinkElement.relList")}}, {{domxref("HTMLAnchorElement.relList")}}, {{domxref("HTMLAreaElement.relList")}}, {{domxref("HTMLIframeElement.sandbox")}}, or {{domxref("HTMLOutputElement.htmlFor")}}. It is indexed beginning with 0 as with JavaScript {{jsxref("Array")}} objects. DOMTokenList is always case-sensitive.

Properties

{{domxref("DOMTokenList.length")}} {{ReadOnlyInline}}
Is an integer representing the number of objects stored in the object.
{{domxref("DOMTokenList.value")}}
The value of the list as a {{domxref("DOMString")}}.

Methods

{{domxref("DOMTokenList.item()")}}
Returns an item in the list by its index (returns undefined if the number is greater than or equal to the length of the list).
{{domxref("DOMTokenList.contains()")}}
Returns true if the list contains the given token, otherwise false.
{{domxref("DOMTokenList.add()")}}
Adds the given token to the list.
{{domxref("DOMTokenList.remove()")}}
Removes the specified token from the list.
{{domxref("DOMTokenList.replace()")}}
Replaces an existing token with a new token.
{{domxref("DOMTokenList.supports()")}}
Returns true if a given token is in the associated attribute's supported tokens.
{{domxref("DOMTokenList.toggle()")}}
Removes a given token from the list and returns false. If token doesn't exist it's added and the function returns true.
{{domxref("DOMTokenList.entries()")}}
Returns an {{jsxref("Iteration_protocols","iterator")}} allowing you to go through all key/value pairs contained in this object.
{{domxref("DOMTokenList.forEach()")}}
Executes a provided function once per DOMTokenList element.
{{domxref("DOMTokenList.keys()")}}
Returns an {{jsxref("Iteration_protocols", "iterator")}} allowing you to go through all keys of the key/value pairs contained in this object.
{{domxref("DOMTokenList.values()")}}
Returns an {{jsxref("Iteration_protocols", "iterator")}} allowing you to go through all values of the key/value pairs contained in this object.

Examples

In the following simple example we retrieve the list of classes set on a {{htmlelement("p")}} element as a DOMTokenList using {{domxref("Element.classList")}}, add a class using {{domxref("DOMTokenList.add()")}}, and then update the {{domxref("Node.textContent")}} of the <p> to equal the DOMTokenList.

First, the HTML:

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

Now the JavaScript:

var para = document.querySelector("p");
var classes = para.classList;
para.classList.add("d");
para.textContent = 'paragraph classList is "' + classes + '"';

The output looks like this:

{{ EmbedLiveSample('Examples', '100%', 60) }}

Trimming of whitespace and removal of duplicates

Methods that modify the DOMTokenList (such as {{domxref("DOMTokenList.add()")}}) automatically trim any excess {{Glossary("Whitespace")}} and remove duplicate values from the list. For example:

<span class="    d   d e f"></span>
var span = document.querySelector("span");
var classes = span.classList;
span.classList.add("x");
span.textContent = 'span classList is "' + classes + '"';

The output looks like this:

{{ EmbedLiveSample('Trimming_of_whitespace_and_removal_of_duplicates', '100%', 60) }}

Specifications

Specification Status Comment
{{SpecName("DOM WHATWG", "#interface-domtokenlist", "DOMTokenList")}} {{Spec2("DOM WHATWG")}} Initial definition

Browser compatibility

{{Compat("api.DOMTokenList")}}

See also