JavaScript 检查元素是否为子元素

JavaScript check if element is child

如何使用 JavaScript 检查 HTML 元素是否是特定 <div> 元素的子元素?

if (divElement == child){
   // do something...
}

编辑:感谢您的回答。我也有一个关于后代的类似问题,并在这里找到了答案 Check if div is descendant of another

if (element.parentNode == divElement) { ... }

使用节点的 contains 函数 - divElement.contains(child)
或此函数以防包含不存在。

function contains(first, second) {
    var adown = first.nodeType === 9 ? first.documentElement : first;

    if (first === second) {
        return true;
    }

    if (adown.contains) { 
        return adown.contains(second);
    }

    return first.compareDocumentPosition && first.compareDocumentPosition(second) & 16);
}

如果节点相同时需要return false

function notContains(first, second) {
    var adown = first.nodeType === 9 ? first.documentElement : first;

    if (first === second) {
        return false;
    }

    if (adown.contains) { 
        return !adown.contains(second);
    }

    return first.compareDocumentPosition && first.compareDocumentPosition(second) & 16) !== 16;
}

使用 nodeName 检查

if(elementObj.parentElement.nodeName == "DIV"){
//Your Code
}

以下代码可以帮助您判断两个元素是否存在父子关系。

function isChild (obj,parentObj){
    while (obj != undefined && obj != null && obj.tagName.toUpperCase() != 'BODY'){
        if (obj == parentObj){
            return true;
        }
        obj = obj.parentNode;
    }
    return false;
}

然后使用 isChild 调用的结果作为条件 if 语句。

if(isChild(child,divElement)){
    // doSomething...
}

您可以使用

进行检查

parentEl.contains(el)

el.parentNode === parentEl