2012-03-15 58 views
0

如果我有一个带有一些tr子节点的tbody,我怎样才能给每个tr一个用户指定的值来识别它?Javascript DOM通过用户类型识别节点?

例如,我想要做的事,如:

mytr1 = mytbody.createElement('tr'); 
mytr2 = mytbody.createElement('tr'); 

mytr1.userident = 'firstname'; 
mytr2.userident = 'lastname'; 

tbody.appendChild(mytr1); 
tbody.appendChild(mytr2); 

然后有一个孩子来访问它的兄弟姐妹一样的能力:

mystr1.parentNode.getByUserident('lastname') 

我不希望使用的ID,因为对象是动态创建和销毁的,并且名称对tr元素无效。

回答

3

您可以使用数据集。
它是HTML5,但它得到了相当的支持。 Datasets support

下面是如何使用它们:

mytr1 = mytbody.createElement('tr'); 
mytr2 = mytbody.createElement('tr'); 

mytr1.dataset.userident = 'firstname'; 
mytr2.dataset.userident = 'lastname'; 

tbody.appendChild(mytr1); 
tbody.appendChild(mytr2); 


访问它们,
这意味着你使用的事件绑定和处理:

var userident = evt.target.dataset.userident; 


编辑

其实它现在被所有浏览器支持。
唯一部分支持的部分是访问。数据集属性。
只需在您的元素上使用.getAttribute('data-userident').setAttribute('data-userident','firstname')

+0

甜!我知道肯定有这样的事情,因为它非常有用。我无法弄清楚要搜索什么。 – Myforwik 2012-03-15 03:39:04