javascript - 为什么 jQuery.data 和 .data() 的行为不同并访问不同的数据?

标签 javascript jquery html

我以前以为jQuery.data.data()使用相同的数据,但只有两种访问此数据的方法。经过一些测试,我发现情况并非如此。

data() 从 DOM 的数据属性获取数据,并将新的或更改的数据附加到 DOM 元素,但不显示在 DOM 本身中。

jQuery.data 的行为非常相似,但不从数据属性获取数据。

这两种方法都不会访问 DOM 元素的相同附加数据。

var newDiv = $("#newDiv");
var temp = newDiv.data("test");
console.log(temp); //is default
console.log(newDiv.data("test")); //also default
console.log($.data(newDiv, "test")); //undefined

//change jQueryElement.data
newDiv.data("test", "ElementChange");
console.log(newDiv.data("test")); //now ElementChange

//get and change jQuery.data
console.log($.data(newDiv, "test")); //still undefined
$.data(newDiv, "test", "directChange");
console.log($.data(newDiv, "test")); //now directChange

console.log(newDiv.data("test")); //still ElementChange

我在这里做了一个jsfiddle:https://jsfiddle.net/mgpfw2rr/

现在我想知道为什么有两种方法的启动数据差别很小?在 stackoverflow 的另一个问题中,答案是,两者都做了同样的事情( Differences between jQuery.data() and .data()? ),这似乎不正确,或者?

提前感谢您的帮助!

最佳答案

正如 Andreas 提到的,它甚至在文档中指出 jQuery.data 不检索数据,而 .data() 只是一种新的更舒适的方法。

谢谢,我以为会有“更多”,但在文档中没有注意到这一点!

关于javascript - 为什么 jQuery.data 和 .data() 的行为不同并访问不同的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47312633/

相关文章:

javascript - 从输入保存和加载图像

javascript - 如何编写通用方法来处理 React 中的多个状态更改

javascript - 当您滚动更多时,JQuery 滚动事件会继续触发

javascript - 发送并处理 POST 请求

jquery - ZingChart 文档中的 "myid"是什么?

javascript - jQuery AJAX 和 XML 获取节点值

javascript - Vert.x:从 Java 部署 JavaScript Verticle 失败

python - 如何使用python cgi从html表单上传文件到服务器

html - html div 周围的边框

html - 响应式设计 : background image button