1

在下面 getElementsByTagName("p")[0]getElementById("demo")访问相同的元素。

以下两项工作,所以我无法弄清楚为什么甚至需要 jquery 数据函数。第二个不能移植到所有浏览器。

$(document.getElementsByTagName("p")[0]).data("funcZ", function() {console.log("ZZZZZ")})

$(document.getElementById("demo")).data("funcZ")()

document.getElementsByTagName("p")[0].funcX = function() {console.log("XXXXX")}

document.getElementById("demo").funcX()
4

2 回答 2

3

根据 jQuery 网站:

jQuery.data() 方法允许我们将任何类型的数据附加到 DOM 元素上,这种方式对循环引用是安全的,因此不会出现内存泄漏。jQuery 确保在通过 jQuery 方法删除 DOM 元素以及用户离开页面时删除数据。

有可能通过将随机字段附加到 DOM 元素,当 DOM 元素消失时,这些字段仍保留在内存中。看起来 jQuery 为您处理了这些问题。

于 2012-07-30T22:40:24.177 回答
0

$.data()方法非常适合隐藏数据,而不是将其附加到数据属性。它可以通过键/值轻松访问,非常适合在创建插件或其他任何内容时存储状态信息。

于 2012-07-30T22:50:49.023 回答