如果我有一个带有一些 tr 子节点的 tbody,我如何为每个 tr 提供一个可用于识别它的用户指定值?
例如我想做这样的事情:
mytr1 = mytbody.createElement('tr');
mytr2 = mytbody.createElement('tr');
mytr1.userident = 'firstname';
mytr2.userident = 'lastname';
tbody.appendChild(mytr1);
tbody.appendChild(mytr2);
然后让一个 child 能够访问其 sibling ,例如:
mystr1.parentNode.getByUserident('lastname')
我不想使用 id,因为对象是动态创建和销毁的,并且名称对于 tr 元素无效。
最佳答案
您可以使用数据集。
它是 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);
要访问它们,
暗示您正在使用事件绑定(bind)和处理:
var userident = evt.target.dataset.userident;
编辑
实际上现在所有浏览器都支持它。
唯一部分支持的部分是对 .dataset 属性的访问。
只需在元素上使用 .getAttribute('data-userident') 和 .setAttribute('data-userident','firstname') 即可。
关于Javascript DOM 通过用户类型识别节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9713267/