在以下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()
答案 0 :(得分:3)
根据jQuery网站:
jQuery.data()方法允许我们以一种不受循环引用安全的方式将任何类型的数据附加到DOM元素,从而避免内存泄漏。 jQuery确保在通过jQuery方法删除DOM元素时以及当用户离开页面时删除数据。
有可能通过将随机字段附加到DOM元素,当DOM元素消失时,字段保留在内存中。它看起来像jQuery为你处理。
答案 1 :(得分:0)
$.data()
方法非常适合隐藏数据,而不是将其附加到数据属性。它可以通过键/值轻松访问,非常适合在创建插件时存储状态信息,或者实际上是什么。