所以我们有一些老式的 Firefox 扩展代码,它们使用DOM3 方法 get/setUserData()
在 DOM 中传递数据。不幸的是,这些在 DOM4 中已被弃用,因此 Firefox计划放弃对它们的支持,而 Chrome 从一开始就从未支持它们。
是否有跨浏览器替换?jQuery$.data
似乎是一种选择,但“纯”JavaScript 更可取。
所以我们有一些老式的 Firefox 扩展代码,它们使用DOM3 方法 get/setUserData()
在 DOM 中传递数据。不幸的是,这些在 DOM4 中已被弃用,因此 Firefox计划放弃对它们的支持,而 Chrome 从一开始就从未支持它们。
是否有跨浏览器替换?jQuery$.data
似乎是一种选择,但“纯”JavaScript 更可取。
所以最后我们还是决定用 jQuery,核心库只有 75k 左右,很干净地解决了这个问题:
element.getUserData('foo') --> $(element).data('foo')
element.setUserData('foo', 'bar', null) --> $(element).data('foo', 'bar')
使用可以存储数据的自定义事件detail
只需在元素上设置您想要的任何属性。
element.key = value;
DOM 元素/节点只是 JavaScript 对象。为避免名称与本机属性(如 等)发生冲突id
,您可以在键前加上下划线。
element._id = "foo";