知方号

知方号

HTML 属性参考

在 HTML 中,大多数属性都有两个方面:内容属性和 IDL(接口描述语言)属性。

内容属性需要你在内容(HTML 代码)中设置,而且可以通过 element.setAttribute() 或 element.getAttribute() 来设置。内容属性总是一个字符串,即使里面的值是一个整数。例如,要将 元素的 maxlength 设置为 42,你需要在元素上调用 setAttribute("maxlength", "42")。

IDL 属性(attribute)也就是 JavaScript 属性(property)。你可以使用 JavaScript 属性如 element.foo 来设置这些属性。当你需要获取 IDL 属性的值时,IDL 属性总会使用隐含的内容属性的值(可能先经过转换)来返回一个值。同样地,当你设置这个值时,这个值会保存在内容属性中。换句话说,IDL 属性本质上反映了内容属性。

大多数时候,IDL 属性会返回元素实际使用的值。例如, 的默认 type 是“text”,所以如果你设置 input.type="foobar", 元素仍然会是文本类型(在外观上和表现上),但 type 内容属性的值是“foobar”。然而,type IDL 属性依旧会返回字符串“text”。

IDL 属性并不总是字符串;例如 input.maxlength 是一个数字(有符号长整型)。使用 IDL 属性时,你读取或设置值的类型都是要求的类型。所以 input.maxlength 总会返回一个数字,而如果你要设置 input.maxlength,也需要使用数字。如果你传入了别的类型,则会根据标准 JavaScript 的类型转换规则被转换为数字。

IDL 属性可以反映其他类型,如无符号长整型、URL、布尔类型,等。不幸的是,并没有清晰的规则定义一个属性的 IDL 属性与对应的内容属性如何关联。大多数时候,这会遵守规范中列出的规则,但有时并不遵守。HTML 规范尝试将这件事尽可能变得对开发者友好,但由于很多原因(大多是历史原因),一些属性表现得很奇怪(例如 select.size),你就需要阅读规范以理解它们实际是如何表现的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。

上一篇 没有了

下一篇没有了