如何通过孩子的ID查找父母的ID

sre*_*th 3 javascript

我有一个动态生成的表,它将具有一个ID.如果表有一个单选按钮,当我点击单选按钮时,我需要通过javascript获取父表的ID.我怎样才能做到这一点?

Dan*_*eam 7

使用jQuery你可以使用.closest().parent()(虽然父级只查找1级,而.closest()直到它找到一些东西).我总是发现.closest()更容易和更健壮,因为如果你改变标记(即你把东西包装在某个<span>东西中)它会起作用.

无论如何,这是jQuery版本:

<input type="radio" onlick="var id = $(this).closest('table').attr('id');" />
Run Code Online (Sandbox Code Playgroud)

如果您不使用库,也可以使用JavaScript执行此操作.

JavaScript:

function findAncestorByTagName(start, tagName) {
    if (tagName.toUpperCase() === start.nodeName.toUpperCase()) {
        return start;
    }
    else if (start === document.body) {
        return false;
    }
    else {
        return findAncestorByTagName(start.parentNode, tagName);
    }
}
Run Code Online (Sandbox Code Playgroud)

您必须添加的onclick处理程序:

<input type="radio" onclick="var par = findAncestorByTagName(this, 'div'); if (par && par.id) { /* use par.id */ }" />
Run Code Online (Sandbox Code Playgroud)