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

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

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

具体 (虽然我最感兴趣的一般问题):

具体来说,我有HTML元素代表树中的节点,我试图启用拖放,但jQuery的拖放事件只会给我的元素被拖放。

获取信息给事件处理程序的正常模式似乎是在创buildJavaScript对象的同时创buildHTML元素,然后通过closures这些JavaScript对象来定义事件处理程序 – 但是在这大小写(我可以有一个全局对象,当一个拖动开始填充…但这感觉有点讨厌)。

你有没有看过jQuery的data()方法? 如果需要,可以将复杂对象分配给元素,或者至less可以利用该方法持有对对象(或其他数据)的引用。

JavaScript对象可以有任意的属性分配给他们,没有什么特别的,你必须做,以允许它。 这包括DOM元素; 虽然这个行为不是DOM标准的一部分,但是它回到了JavaScript的第一个版本,并且是完全可靠的。

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