如何将HTML元素链接到对象?

时间:2014-11-20 07:53:39

标签: javascript jquery html

假设我有一个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元素?

1 个答案:

答案 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}在那个其他元素上)。

&#13;
&#13;
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;
&#13;
&#13;