DOMTokenList
The DOMTokenList
interface represents a set of space-separated tokens. Such a set is returned by Element.classList
, HTMLLinkElement.relList
, HTMLAnchorElement.relList
, HTMLAreaElement.relList
, HTMLIframeElement.sandbox
, or HTMLOutputElement.htmlFor
. It is indexed beginning with 0
as with JavaScript Array
objects. DOMTokenList
is always case-sensitive.
Properties
-
DOMTokenList.length
Read only -
Is an
integer
representing the number of objects stored in the object. DOMTokenList.value
-
A stringifier property that returns the value of the list as a
DOMString
.
Methods
DOMTokenList.item(index)
-
Returns the item in the list by its
index
, orundefined
ifindex
is greater than or equal to the list'slength
. DOMTokenList.contains(token)
-
Returns
true
if the list contains the giventoken
, otherwisefalse
. DOMTokenList.add(token1[, token2[, ...tokenN]])
-
Adds the specified
token
(s) to the list. DOMTokenList.remove(token1[, token2[, ...tokenN]])
-
Removes the specified
token
(s) from the list. DOMTokenList.replace(oldToken, newToken)
-
Replaces
token
withnewToken
. DOMTokenList.supports(token)
-
Returns
true
if a giventoken
is in the associated attribute's supported tokens. DOMTokenList.toggle(token [, force])
-
Removes
token
from the list if it exists, or addstoken
to the list if it doesn't. Returns a boolean indicating whethertoken
is in the list after the operation. DOMTokenList.entries()
-
Returns an iterator, allowing you to go through all key/value pairs contained in this object.
DOMTokenList.forEach(callback [, thisArg])
-
Executes a provided
callback
function once perDOMTokenList
element. DOMTokenList.keys()
-
Returns an iterator, allowing you to go through all keys of the key/value pairs contained in this object.
DOMTokenList.values()
-
Returns an 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 <p>
element as a DOMTokenList
using Element.classList
, add a class using DOMTokenList.add()
, and then update the Node.textContent
of the <p>
to equal the DOMTokenList
.
First, the HTML:
<p class="a b c"></p>
Now the JavaScript:
let para = document.querySelector("p"); let classes = para.classList; para.classList.add("d"); para.textContent = `paragraph classList is "${classes}"`;
The output looks like this:
Trimming of whitespace and removal of duplicates
Methods that modify the DOMTokenList
(such as DOMTokenList.add()
) automatically trim any excess Whitespace and remove duplicate values from the list. For example:
<span class=" d d e f"></span>
let span = document.querySelector("span"); let classes = span.classList; span.classList.add("x"); span.textContent = `span classList is "${classes}"`;
The output looks like this:
Specifications
Specification |
---|
DOM Standard (DOM) # interface-domtokenlist |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
DOMTokenList |
8 |
12 |
3.6 |
10 |
11.5 |
6 |
3 |
18 |
4 |
11.5 |
6 |
1.0 |
add |
8 |
12 |
3.6 |
10 |
Yes |
6 |
3 |
18 |
4 |
Yes |
6 |
1.0 |
contains |
8 |
12 |
3.6 |
10 |
Yes |
6 |
3 |
18 |
4 |
Yes |
6 |
1.0 |
entries |
42 |
16 |
50 |
No |
32 |
10.1 |
45 |
45 |
50 |
32 |
10.3 |
5.0 |
forEach |
42 |
16 |
50 |
No |
32 |
10.1 |
45 |
45 |
50 |
32 |
10.3 |
5.0 |
item |
8 |
12 |
3.6 |
10 |
Yes |
6 |
3 |
18 |
4 |
Yes |
6 |
1.0 |
keys |
42 |
16 |
50 |
No |
32 |
10.1 |
45 |
45 |
50 |
32 |
10.3 |
5.0 |
length |
8 |
12 |
50 |
10 |
Yes |
6 |
3 |
18 |
50 |
Yes |
6 |
1.0 |
remove |
8 |
12 |
3.6 |
10 |
Yes |
6 |
3 |
18 |
4 |
Yes |
6 |
1.0 |
remove_duplicates |
60 |
17 |
55 |
No |
47 |
10 |
60 |
60 |
55 |
44 |
10 |
8.0 |
replace |
61 |
17 |
49 |
No |
48 |
10.1 |
61 |
61 |
49 |
45 |
10.3 |
8.0 |
supports |
49 |
17 |
49 |
No |
36 |
10.1 |
49 |
49 |
49 |
36 |
10.3 |
5.0 |
toggle |
8 |
12 |
3.6 |
10 |
Yes |
6 |
3 |
18 |
4 |
Yes |
6 |
1.0 |
trim_whitespace |
48 |
12 |
51 |
10 |
35 |
10 |
48 |
48 |
51 |
35 |
10 |
5.0 |
value |
50
Before Chrome 50, this property was part of the deprecated child
DOMSettableTokenList interface. |
17 |
47 |
No |
37
Before Opera 37, this property was part of the deprecated child
DOMSettableTokenList interface. |
10 |
50
Before Chrome 50, this property was part of the deprecated child
DOMSettableTokenList interface. |
50
Before Chrome 50, this property was part of the deprecated child
DOMSettableTokenList interface. |
47 |
37
Before Opera 37, this property was part of the deprecated child
DOMSettableTokenList interface. |
10 |
5.0
Before Samsung Internet 5.0, this property was part of the deprecated child
DOMSettableTokenList interface. |
values |
42 |
16 |
50 |
No |
32 |
10.1 |
45 |
45 |
50 |
32 |
10.3 |
5.0 |
@@iterator |
42 |
16 |
36 |
No |
29 |
10.1 |
42 |
42 |
36 |
29 |
10.3 |
4.0 |
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList