假设我有一个JavaScript对象:
var foo = {
// object content
};
此对象从HTML元素获取其数据。让我们说一下:
<div id="linkDiv" data-url="www.google.com"></div>
现在,使用jQuery,您可以轻松地添加指向JavaScript对象中HTML元素的直接链接:
foo.divData = $('#linkDiv')
我的问题:
JavaScript对象现在具有对HTML元素的引用。如何将JavaScript对象的引用添加到HTML元素?
答案 0 :(得分:1)
jQuery的data
功能是什么。
环境:
$("#linkDiv").data("some-name-here", foo);
稍后:
var anotherReferenceToFoo = $("#linkDiv").data("some-name-here");
删除它:
$("#linkDiv").removeData("some-name-here");
data
允许您将任何类型的数据与HTML元素相关联,而不会导致循环引用问题(尽管这些实际上只是旧版本IE的问题)。数据可以是JavaScript支持的任何类型。
如果你在某个时候删除了元素,只要你通过jQuery而不是直接通过DOM删除它,数据就会被清理掉(即使它被深埋在另一个元素中并且你使用{{1}在那个其他元素上)。
html
&#13;
var foo = {
bar: "baz"
};
// Storing it
$("#linkDiv").data("some-name-here", foo);
// Retrieving it later
var f2 = $("#linkDiv").data("some-name-here");
snippet.log("f2.bar = " + f2.bar);
// Removing it
$("#linkDiv").removeData("some-name-here");
// Checking it's gone
var f3 = $("#linkDiv").data("some-name-here");
snippet.log(typeof f3); // undefined
&#13;