The toggleAttribute() method of the Element interface toggles a Boolean attribute (removing it if it is present and adding it if it is not present) on the given element.
On this page
Element: toggleAttribute() method
Syntax
js
toggleAttribute(name)
toggleAttribute(name, force)
Parameters
-
name -
A string specifying the name of the attribute to be toggled. The attribute name is automatically converted to all lower-case when
toggleAttribute()is called on an HTML element in an HTML document. forceOptional-
A boolean value which has the following effects:
- if not specified at all, the
toggleAttributemethod "toggles" the attribute namedname— removing it if it is present, or else adding it if it is not present - if true, the
toggleAttributemethod adds an attribute namedname - if false, the
toggleAttributemethod removes the attribute namedname
- if not specified at all, the
Return value
true if attribute name is eventually present, and false otherwise.
Exceptions
InvalidCharacterErrorDOMException-
The specified attribute
namecontains one or more characters which are not valid in attribute names.
Examples
In the following example, toggleAttribute() is used to toggle the disabled attribute of an <input>.
HTML
html
<input value="text" /> <button>toggleAttribute("disabled")</button>
JavaScript
js
const button = document.querySelector("button");
const input = document.querySelector("input");
button.addEventListener("click", () => {
input.toggleAttribute("disabled");
});
Result
DOM methods dealing with element's attributes:
| Not namespace-aware, most commonly used methods | Namespace-aware variants (DOM Level 2) | DOM Level 1 methods for dealing with Attr nodes directly (seldom used) |
DOM Level 2 namespace-aware methods for dealing with Attr nodes directly (seldom used) |
|---|---|---|---|
setAttribute (DOM 1) |
setAttributeNS |
setAttributeNode |
setAttributeNodeNS |
getAttribute (DOM 1) |
getAttributeNS |
getAttributeNode |
getAttributeNodeNS |
hasAttribute (DOM 2) |
hasAttributeNS |
- | - |
removeAttribute (DOM 1) |
removeAttributeNS |
removeAttributeNode |
- |
Specifications
| Specification |
|---|
| DOM Standard # ref-for-dom-element-toggleattribute① |
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 | |
toggleAttribute |
69 | 18 | 63 | No | 56 | 12 | 69 | 69 | 63 | 48 | 12 | 10.0 |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/toggleAttribute