Javascript DOM:设置自定义 DOM 元素属性

2024-02-29

可以在 DOM 元素上设置自定义属性并依赖它们持续存在吗?

例如,给定

 <html><body><div id="foo"></div></body></html>

这样做公平吗document.getElementById('foo').bar = "baz";,并期望document.getElementsByTagName('div')[0].bar等于"baz"?

请注意,我在这里讨论的是普通 javascript 对象属性中的属性,而不是元素属性。

我对它的跨浏览器性能以及是否受任何规范支持都很感兴趣。

DOM API 是否保证每次都会为同一个 DOM 元素返回同一个 javascript 对象?


作为一般规则,不要使用自定义属性。您不应该以 DOM 对象不期望的方式修改它们,因为它们的行为可能不会像您想象的那样。

定制机制属性在 HTML5 中是使用data- https://www.w3.org/TR/html52/dom.html#embedding-custom-non-visible-data-with-the-data-attributes prefix.

然而,HTML5 并不是标准,也尚未得到广泛实施。但如果你使用设置/获取属性 for data-它应该适用于所有相当现代的浏览器,并且将来不应引入任何标准属性data- prefix.

但话虽如此,我仍然建议使用自定义对象来存储值并按元素引用它们id or class或一些其他标准(如 HTML 4.01)属性值。它避免了自定义属性和属性的问题,并且众所周知可以在任何地方使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript DOM:设置自定义 DOM 元素属性 的相关文章