Toggle a boolean attribute (removing it if it is present and adding it if it is not present) on the specified element.
Element.toggleAttribute(name[, force]);
name
DOMString
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.force
Optional
true
if attribute name
is eventually present, and false
otherwise.
InvalidCharacterError
name
contains one or more characters which are not valid in attribute names.In the following example, toggleAttribute()
is used to toggle the readonly
attribute of a <input>
.
<input value="text"> <button>toggleAttribute("readonly")</button>
var button = document.querySelector("button"); var input = document.querySelector("input"); button.addEventListener("click", function(){ input.toggleAttribute("readonly"); });
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 | - |
if (!Element.prototype.toggleAttribute) { Element.prototype.toggleAttribute = function(name, force) { var forcePassed = arguments.length === 2; var forceOn = !!force; var forceOff = forcePassed && !force; if (this.getAttribute(name) !== null) { if (forceOn) return true; this.removeAttribute(name); return false; } else { if (forceOff) return false; this.setAttribute(name, ""); return true; } }; }
Specification | Status | Comment |
---|---|---|
DOM The definition of 'Element.toggleAttribute' in that specification. | Living Standard |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | 69 | 18 | 63 | ? | 56 | ? |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | 69 | 69 | ? | 63 | 56 | ? | ? |
© 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/element/toggleAttribute