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
  • 842
  • 2
  • 12
  • 27

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
3
if (element.parentNode == divElement) { ... }
henrybbosa
  • 1,121
  • 11
  • 28
3

you can check either using

parentEl.contains(el)

or

el.parentNode === parentEl

LuizAsFight
  • 162
  • 7
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,292
  • 3
  • 33
  • 39
-1

Use nodeName to check

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