我正在尝试将一些“私有”数据与 DOM 元素相关联。我没有将该数据添加到 DOM 元素本身(我想避免更改 DOM 元素),而是有一个单独的数据对象,我想将其用作地图。
而不是:
document.GetElementById('someElementId').privateData = {};
我想要做
internalPrivateDataMap[document.GetElementById('someElementId')].privateData = {};
并不是所有的元素都有id字段,有些是动态创建的,所以不能用id作为key。
这对大多数元素都适用,但对于“a”元素,使用的键似乎是元素的 href,我认为是因为 DOM 为 a 元素定义了一个 toString() 函数。
这样做的结果是,如果我有两个具有相同 href 的“a”元素,它们将共享我不想要的 privateData。
我当前的解决方法是生成一个可以用作键的内部 uniqueID,但这需要我修改 DOM 元素,我试图避免这种情况。