--- title: Element.toggleAttribute() slug: Web/API/Element/toggleAttribute tags: - API - Element - 元素 - 参考 translation_of: Web/API/Element/toggleAttribute ---
{{domxref("Element")}} 接口的 toggleAttribute() 方法切换给定元素的某个布尔值属性的状态(如果属性不存在则添加属性,属性存在则移除属性)。
Element.toggleAttribute(name [, force]);
nametoggleAttribute() is called on an HTML element in an HTML document.force {{optional_inline}}true if attribute name is eventually present, and false otherwise.
InvalidCharacterErrorname contains one or more characters which are not valid in attribute names.在下面的例子中,toggleAttribute() 被用于切换 {{HTMLElement("input")}} 的 readonly 属性。
<input value="text">
<button>toggleAttribute("readonly")</button>
var button = document.querySelector("button");
var input = document.querySelector("input");
button.addEventListener("click", function(){
input.toggleAttribute("readonly");
});
{{ EmbedLiveSample('Example', '300', '50') }}
{{DOMAttributeMethods}}
译者注:下面代码中的 void 0 即 undefined。
if (!Element.prototype.toggleAttribute) {
Element.prototype.toggleAttribute = function(name, force) {
if(force !== void 0) force = !!force
if (this.getAttribute(name) !== null) {
if (force) return true;
this.removeAttribute(name);
return false;
} else {
if (force === false) return false;
this.setAttribute(name, "");
return true;
}
};
}
| 规范 | 状态 | 备注 |
|---|---|---|
| {{SpecName('DOM WHATWG', '#dom-element-toggleattribute', 'Element.toggleAttribute')}} | {{Spec2('DOM WHATWG')}} |
{{Compat("api.Element.toggleAttribute")}}