From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../web/api/element/toggleattribute/index.html | 113 +++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 files/zh-cn/web/api/element/toggleattribute/index.html (limited to 'files/zh-cn/web/api/element/toggleattribute') diff --git a/files/zh-cn/web/api/element/toggleattribute/index.html b/files/zh-cn/web/api/element/toggleattribute/index.html new file mode 100644 index 0000000000..c98a1882ef --- /dev/null +++ b/files/zh-cn/web/api/element/toggleattribute/index.html @@ -0,0 +1,113 @@ +--- +title: Element.toggleAttribute() +slug: Web/API/Element/toggleAttribute +tags: + - API + - Element + - 元素 + - 参考 +translation_of: Web/API/Element/toggleAttribute +--- +
{{APIRef("DOM")}}
+ +

{{domxref("Element")}} 接口的 toggleAttribute() 方法切换给定元素的某个布尔值属性的状态(如果属性不存在则添加属性,属性存在则移除属性)。

+ +

语法

+ +
Element.toggleAttribute(name [, force]);
+
+ +

参数

+ +
+
name
+
A {{domxref("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_inline}}
+
A boolean value to determine whether the attribute should be added or removed, no matter whether the attribute is present or not at the moment.
+
+ +

返回值

+ +

true if attribute name is eventually present, and false otherwise.

+ +

异常

+ +
+
InvalidCharacterError
+
The specified attribute name contains one or more characters which are not valid in attribute names.
+
+ +

例子

+ +

在下面的例子中,toggleAttribute() 被用于切换 {{HTMLElement("input")}} 的 readonly 属性。

+ +

HTML

+ +
<input value="text">
+<button>toggleAttribute("readonly")</button>
+ +

JavaScript

+ +
var button = document.querySelector("button");
+var input = document.querySelector("input");
+
+button.addEventListener("click", function(){
+  input.toggleAttribute("readonly");
+});
+
+ +

结果

+ +

{{ EmbedLiveSample('Example', '300', '50') }}

+ +

{{DOMAttributeMethods}}

+ +

Polyfill

+ +
+

译者注:下面代码中的 void 0undefined

+
+ +
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")}}

-- cgit v1.2.3-54-g00ecf