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