获取元素的表父

has*_*leh 4 javascript

我在表中动态创建了一个带有类x的div.我怎样才能用JavaScript捕获这个div的表父类并给它一个特定的类?

通过tr和td父节点没有工作.有任何想法吗?

Que*_*tin 8

假设没有涉及库.

function getNearestTableAncestor(htmlElementNode) {
    while (htmlElementNode) {
        htmlElementNode = htmlElementNode.parentNode;
        if (htmlElementNode.tagName.toLowerCase() === 'table') {
            return htmlElementNode;
        }
    }
    return undefined;
}

var table = getNearestTableAncestor(node);
if (table) {
    table.className += ' certain';
}
Run Code Online (Sandbox Code Playgroud)


cam*_*aca 3

如果你有 jQuery,这很容易。如果你的 HTML 是这样的:

<table>
  <tr><td><div class="mydiv">hi</div></td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

然后你可以这样说:

$('div.mydiv').closest('table').addClass('someclass');
Run Code Online (Sandbox Code Playgroud)

closest函数在 DOM 树中向上查找,直到到达与您给出的选择器匹配的元素(在本例中为table)。