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
DOMStringrepresenting the token you want to toggle. forceOptional- A
Booleanthat, if included, turns the toggle into a one way-only operation. If set tofalse, thentokenwill only be removed, but not added. If set totrue, thentokenwill 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
