カスタム情報 (状態など) を保存するために、JavaScript で標準の DOM ノードを展開する必要がある場合があります。次の 2 つの方法があります。
- 使用
data-*
属性:node.setAttribute('data-custom', value)
- ノードオブジェクトにデータを直接入れるだけです:
node.__customField = value
2 番目の方法は、Google 検索ページで使用されています。フィールド「__jsaction」をボタンDOMオブジェクトに入れます。jQueryは、そのメソッドにこのアプローチのいくつかのバリエーションを使用します (データ チャンクのインデックスをストレージに格納するのと.data()
同じ名前のフィールドをノードに配置します)。jQuery2030201338223880156870.7588401902467012
両方の手法の欠点は、衝突の可能性です (ただし、jQuery ソリューションはそれほど悪くないように見えます)。しかし...他のより信頼できる方法はありますか?