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.
DOMTokenList.length
Read only
integer
representing the number of objects stored in the object.DOMTokenList.value
DOMString
.DOMTokenList.item()
DOMTokenList.contains()
true
if the list contains the given token, otherwise false
.DOMTokenList.add()
DOMTokenList.remove()
DOMTokenList.replace()
DOMTokenList.supports()
true
if a given token is in the associated attribute's supported tokens.DOMTokenList.toggle()
true
.DOMTokenList.entries()
iterator
allowing you to go through all key/value pairs contained in this object.DOMTokenList.forEach()
DOMTokenList
element.DOMTokenList.keys()
iterator
allowing you to go through all keys of the key/value pairs contained in this object.DOMTokenList.values()
iterator
allowing you to go through all values of the key/value pairs contained in this object.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:
var para = document.querySelector("p"); var classes = para.classList; para.classList.add("d"); para.textContent = 'paragraph classList is "' + classes + '"';
The output looks like this:
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>
var span = document.querySelector("span"); var classes = span.classList; span.classList.add("x"); span.textContent = 'span classList is "' + classes + '"';
The output looks like this:
Specification | Status | Comment |
---|---|---|
DOM The definition of 'DOMTokenList' in that specification. | Living Standard | Initial definition |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | Yes | Yes | Yes | 10 | Yes | Yes |
replace |
61 | 17 | 49 | ? | 48 | Yes |
supports
|
50 | 17 | 49 | No | Yes | ? |
Trimming of whitespace and removal of duplicates | Yes | ? | 55 | Yes
|
Yes | Yes |
length |
Yes | 12 | 50 | ? | Yes | ? |
value |
Yes | ? | Yes | ? | Yes | Yes |
item |
Yes | 12 | Yes | 10 | Yes | Yes |
contains |
Yes | 12 | Yes | 10 | Yes | Yes |
add |
Yes | 12 | Yes | 10 | Yes | Yes |
remove |
Yes | 12 | Yes | 10 | Yes | Yes |
toggle |
Yes | 12 | Yes | 11 | Yes | Yes |
entries |
Yes | ? | 50 | ? | Yes | ? |
forEach |
Yes | No | 50 | ? | Yes | ? |
keys |
Yes | ? | 50 | ? | Yes | ? |
values |
Yes | ? | 50 | ? | Yes | ? |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
replace |
61 | 61 | 17 | 49 | 48 | Yes | No |
supports
|
50 | 50 | 17 | 49 | Yes | No | 5.0 |
Trimming of whitespace and removal of duplicates | ? | Yes | ? | 55 | Yes | Yes | Yes |
length |
Yes | Yes | ? | 50 | Yes | ? | Yes |
value |
Yes | Yes | ? | Yes | Yes | Yes | Yes |
item |
Yes | Yes | ? | Yes | Yes | Yes | Yes |
contains |
Yes | Yes | ? | Yes | Yes | Yes | Yes |
add |
Yes | Yes | ? | Yes | Yes | Yes | Yes |
remove |
Yes | Yes | ? | Yes | Yes | Yes | Yes |
toggle |
Yes | Yes | ? | Yes | Yes | Yes | Yes |
entries |
Yes | Yes | ? | 50 | Yes | ? | Yes |
forEach |
Yes | Yes | ? | 50 | Yes | ? | Yes |
keys |
Yes | Yes | ? | 50 | Yes | ? | Yes |
values |
Yes | Yes | ? | 50 | Yes | ? | Yes |
DOMSettableTokenList
(object that extends DOMTokenList
with settable .value property)
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList