Javascript 从 TD 访问 TR
2010-03-26
47052
我有一个表格行,其中有一个 td(无论它代表什么)。我想更改 TD 所在 TR 的类属性,而不使用 ID 或名称。就像这样:
<tr>
<td onclick="[TR].setAttribute('class', 'newName')">My TD</td>
</tr>
我该怎么做?
3个回答
td
代表表格数据..
现在.. 在您的情况下,您需要
td
的
parentNode
属性..
<tr>
<td onclick="this.parentNode.setAttribute('class', 'newName')">My TD</td>
</tr>
或者如 bobince 在他的评论中所建议的那样
<td onclick="this.parentNode.className= 'newName'">My TD</td>
Gabriele Petrioli
2010-03-26
在 jquery 中,如果您有对 td 的引用,那么这将非常简单:
$(this).closest('tr');
如果您真的不想依赖 jQuery,那么您可以做一个循环来获取父节点并检查其类型,这是一种更通用的解决方案。在这种情况下,您可以只获取父节点,因为 tr 始终是 td 的直接父节点。您可以执行类似以下操作(请注意,这未经测试):
var parent = myTd.parentNode;
while(true) {
if(parent == null) {
return;
}
if(parent.nodeName === "TR") {
return parent;
}
parent = parent.parentNode;
}
Keith Rousseau
2010-03-26
如果您在JavaScript中具有DOM元素,则可以使用.parentNode(),它将为您提供父节点,这应该是表行。然后您可以设置.classname
thecoshman
2010-03-26