4

How can I check using JavaScript, if an HTML element is a child of a particular <div> element?

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

EDIT: Thank you for the answers. I also had a similair question about descendants and found the answer here Check if div is descendant of another

Community
  • 1
  • 1
Alexander
  • 921
  • 3
  • 12
  • 31

5 Answers5

4

The following code may help you determine whether the two elements of parent-child relationships.

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

then use the result of isChild call as condition if statement.

if(isChild(child,divElement)){
    // doSomething...
}
sept08
  • 345
  • 2
  • 8
4

you can check either starting from parent element, or child element.

1- check if current element is inside the parent element parentEl.contains(el)

or

2- current element's parent is the parentElement we have stored el.parentNode === parentEl

LuizAsFight
  • 222
  • 1
  • 7
3
if (element.parentNode == divElement) { ... }
henrybbosa
  • 1,139
  • 13
  • 28
1

use contains function of Node - divElement.contains(child)
or this function in case contains does not exists.

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);
}

in case you need to return false when the nodes are the same

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;
}
Sagi
  • 8,972
  • 3
  • 33
  • 41
-1

Use nodeName to check

if(elementObj.parentElement.nodeName == "DIV"){
//Your Code
}
Akku
  • 11
  • 1