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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

是否可以在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中自定义属性的机制是使用数据前缀。

但是,HTML5并不是一个标准,而且还没有广泛实施。但是如果你使用set / getAttribute作为数据属性,它应该可以在所有合理的现代浏览器上工作,并且在将来不应该引入标准属性和数据前缀。

但话虽如此,我仍然建议使用自定义对象来存储值并通过元素ID或其他标准(如HTML 4.01中的)属性值引用它们。它避免了自定义属性和属性的问题,并且随处可见。

扫码关注云+社区