有没有一种方法将JavaScript对象附加到HTML元素?

时间:2009-09-09 23:35:44

标签: javascript dom

我想将JavaScript对象与HTML元素相关联。有一种简单的方法可以做到这一点吗?

我注意到HTML DOM定义了一个setAttribute方法,看起来这是为任意属性名定义的。但是,这只能设置字符串值。 (当然,您可以使用它将密钥存储到字典中。)

细节(虽然我对一般问题最感兴趣):

具体来说,我有一个表示树中节点的HTML元素,我正在尝试启用拖放,但是jQuery drop事件只会给我拖放的元素。

获取事件处理程序信息的正常模式似乎是在创建JavaScript对象的同时创建HTML元素,然后通过关闭这些JavaScript对象来定义事件处理程序 - 但是这也不起作用在这种情况下(我可以有一个全局对象,当拖动开始时会填充...但这感觉有点讨厌)。

2 个答案:

答案 0 :(得分:94)

JavaScript对象可以分配给它们的任意属性,你不需要做任何特殊的事情来允许它。这包括DOM元素;虽然这种行为不是DOM标准的一部分,但它的情况可以追溯到JavaScript的第一个版本并且完全可靠。

var div= document.getElementById('nav');
div.potato= ['lemons', 3];

答案 1 :(得分:41)

你看过jQuery data()方法了吗?如果需要,可以将复杂对象分配给元素,或者至少可以利用该方法来保存对象(或其他一些数据)的引用。

相关问题