有时您需要通过 JavaScript 扩展标准 DOM 节点以保存一些自定义信息(例如状态)。我看到两种方法:
- 使用
data-*
属性:node.setAttribute('data-custom', value)
- 只需将您的数据直接放入节点对象中:
node.__customField = value
我看到的第二种方法是在Google 搜索页面上使用的。他们将字段“__jsaction”放入按钮 DOM 对象中。jQuery在其方法中使用了这种方法的一些变体.data()
(它将名为 like 的字段放入节点中jQuery2030201338223880156870.7588401902467012
,正如我所见,它在其存储中存储了数据块的索引)。
这两种技术的缺点是可能发生冲突(但是 jQuery 解决方案看起来还不错)。但是……他们还有其他更可靠的方法吗?