是否可以在DOM元素上设置自定义属性,并依赖它们进行持久化?
例如,给定
<html><body><div id="foo"></div></body></html>
使用document.getElementById('foo').bar = "baz";
,并期望document.getElementsByTagName('div')[0].bar
等于"baz"
,这公平吗?
请注意,我在这里讨论的属性与普通javascript对象属性一样,而不是元素属性。
我感兴趣的是它是如何跨浏览器的,以及是否在任何规范中都支持它。
DOM是否保证每次都为相同的DOM元素返回相同的javascript对象?
发布于 2011-10-26 04:52:56
不是的。
比方说,5年前,您认为属性.contains
是判断元素是否包含某些特殊数据的一个很好的用例。
所以你写了document.getElementById("someId").contains = true
然后你有像if (document.getElementByID("someId").contains)
这样的支票
今天,这一点被打破了,因为Node.prototype.contains
是一种方法。
基本上,你的代码不是未来安全的。
https://stackoverflow.com/questions/7895560
复制相似问题