我必须禁用我的 Java 脚本代码中的一些元素,哪个更适合通过 Java 脚本禁用元素:
1. document.getElementById("eleId").disabled = true;
2. document.getElementById("eleId").disabled = "disabled";
请任何人描述这些功能,它们之间有什么区别?
我必须禁用我的 Java 脚本代码中的一些元素,哪个更适合通过 Java 脚本禁用元素:
1. document.getElementById("eleId").disabled = true;
2. document.getElementById("eleId").disabled = "disabled";
请任何人描述这些功能,它们之间有什么区别?
两种情况都有效。
在情况 1 中,您将属性“禁用”设置为布尔值“真”。在情况 2 中,您将属性“禁用”设置为字符串值“禁用”。
如果您打算通过 HTML 设置此值,通常您可以只在列出的标签上设置“禁用”属性即可。但是为了符合 XHTML/XML 样式,您将使用格式正确的属性 disabled="disabled"。
基本上,如果浏览器检测到存在“禁用”属性,(我认为)它将禁用该元素。
编辑 另一个 SO 用户(RobG)指出,这会设置相关元素的“DOM 属性”而不是“属性”。
在处理“getElementById”的结果时,您正在处理文档结构的表示。当您进行修改时,您是在“对象模型”上设置属性。用 Java 编程了这么久,我通常会互换术语属性和属性。在说“它设置属性”的情况下,我是不正确的。说我要设置“属性”意味着我会修改文档(HTML)以更改实际源中“禁用”的值。这实际上是在修改对象树,设置代表对象的属性。
在 XHTML 中,属性最小化是被禁止的,disabled 属性必须定义为disabled="disabled"
在普通的 HTML 中,我们可以像disabled=true
从技术上讲,如果属性只有一个禁用属性,它应该禁用它。虽然对于 XHTML,它必须是 disabled="disabled"
HTML disabled 属性是布尔值,它的存在将相关的 DOM 属性设置为true
并用HTML 4.01和HTML5编写:
<... disabled ...>
在 XML 中,属性必须有值,所以对于XHTML,它是这样写的:
<... disabled="disabled" ...>
但是实际值无关紧要,它仍然可以用作布尔属性。
在 DOM 中,元素属性通常反映相关的属性值,但并非总是如此。setAttribute
在工作方式和工作方式上也存在不一致getAttribute
,因此在 javascript 中最好使用 DOM 属性,除非有充分的理由使用属性(例如 data-attribute)。
要禁用元素,disabled
应将 DOM 属性设置为 boolean true
,要“取消禁用”元素,应将属性设置为false
。将任何字符串分配给该值将导致true
通过类型转换将其设置为。
人们往往会对 xhtml 属性值感到困惑:
<input id="test" disabled="disabled"/>
和 javascript DOM api:
inputElement.disabled = true;
并将 javascript 值设置为字符串。它在技术上不正确,但它工作正常。