【发布时间】:2011-06-25 22:33:56
【问题描述】:
我想在数据和 DOM 节点之间建立关联。我尝试直接创建一个Object,以节点为属性,但看起来只使用了节点的字符串表示。
为了使问题更具体,假设我有以下文档,我想将第一个 div 与数字 3 关联,将第二个 div 与列表 ['x', 'y', 'z'] 关联,如何你来做这件事?
<html> <body>
<div/>
<div/>
( 100 more divs )
</body> </html>
我看到 jQuery 有一个 .data() 方法来做这件事。这是唯一的方法吗?这似乎是一个基本的操作,我曾期望使用普通的 javascript 来完成。
目的是向这些节点注册一个 onclick 事件,并准备好数据。
window.onload = function() {
var index2data = { 0:3, 1:['x', 'y', 'z'] };
var divs = document.getElementsByTagName("div");
for(var i = 0; i < divs.length; i++){
setData( divs[i], index2data[i] )
divs[i].onclick = onClick;
}
}
function onClick() {
var data = getData( this );
// do a bunch more stuff
}
【问题讨论】:
-
请停止标记您的标题。很遗憾你已经做了将近两年了!
标签: javascript dom associative-array