The toggle()
method of the DOMTokenList
interface removes a given token
from the list and returns false
. If token doesn't exist it's added and the function returns true
.
Syntax
tokenList.toggle(token [, force]);
Parameters
token
- A
DOMString
representing the token you want to toggle. force
Optional- A
Boolean
that, if included, turns the toggle into a one way-only operation. If set tofalse
, thentoken
will only be removed, but not added. If set totrue
, thentoken
will only be added, but not removed.
Return value
A Boolean
indicating whether token
is in the list after the call.
Examples
In the following example we retrieve the list of classes set on a <span>
element as a DOMTokenList
using Element.classList
. We then replace a token in the list, and write the list into the <span>
's Node.textContent
.
First, the HTML:
<span class="a b">classList is 'a b'</span>
Now the JavaScript:
let span = document.querySelector("span"); let classes = span.classList; span.addEventListener('click', function() { let result = classes.toggle("c"); if (result) { span.textContent = `'c' added; classList is now "${classes}".`; } else { span.textContent = `'c' removed; classList is now "${classes}".`; } })
The output looks like this:
Specifications
Specification | Status | Comment |
---|---|---|
DOM The definition of 'toggle()' in that specification. |
Living Standard | Initial definition |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
toggle | Chrome Full support 1 | Edge Full support 12 | Firefox Full support Yes | IE Full support 11 | Opera Full support Yes | Safari Full support 5.1 | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS Full support 5.1 | Samsung Internet Android Full support Yes |
force argument | Chrome Full support Yes | Edge Full support ≤18 | Firefox Full support Yes | IE No support No | Opera Full support Yes | Safari Full support 6.1 | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android ? | Opera Android Full support Yes | Safari iOS Full support 6.1 | Samsung Internet Android Full support Yes |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown