いくつかの「プライベート」データをDOM要素に関連付けようとしています。そのデータをDOM要素自体に追加するのではなく(DOM要素を変更しないようにしたい)、マップとして使用したい別のデータオブジェクトがあります。
それよりも:
document.GetElementById('someElementId').privateData = {};
私はやってみたいです
internalPrivateDataMap[document.GetElementById('someElementId')].privateData = {};
すべての要素にidフィールドがあるわけではなく、一部は動的に作成されるため、idをキーとして使用することはできません。
これはほとんどの要素で正常に機能しますが、「a」要素の場合、使用されているキーは要素のhrefであるように見えます。これは、DOMが要素のtoString()関数を定義しているためだと思います。
この結果、同じhrefを持つ2つの「a」要素がある場合、それらは私が望まないprivateDataを共有しています。
現在の回避策は、キーとして使用できる内部のuniqueIDを生成することですが、これを回避するためにDOM要素を変更する必要があります。