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

2

5 Answers 5

5

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

Sign up to request clarification or add additional context in comments.

Comments

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... } 

2 Comments

I believe this is the proper way of doing it, thanks
doesn't this return true for the 2 same object..? isChild(child, child) = true ?
3
if (element.parentNode == divElement) { ... } 

Comments

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

1 Comment

That will also return true if they are the same node.
-1

Use nodeName to check

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.