# How to check if an element is a descendant of another

> Learn how to check if an element is a descendant of another in JavaScript by walking up the parentNode chain until you match the parent element id.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2020-04-27 | Topics: [JavaScript](https://flaviocopes.com/tags/js/) | Canonical: https://flaviocopes.com/how-to-check-element-descendant/

I had the need to find out of an element I got via a click event was a descendant of a particular parent element.

I assigned an `id` to that parent, and I checked if the clicked element belonged to its child elements using this loop:

```js
const isDescendant = (el, parentId) => {
  let isChild = false

  if (el.id === parentId) { //is this the element itself?
    isChild = true
  }

  while (el = el.parentNode) {
    if (el.id == parentId) {
      isChild = true
    }
  }
  
  return isChild
}

document.addEventListener('click', event => {
  const parentId = 'mycontainer'

  if (isDescendant(event.target, parentId)) {
    //it is a descendant, handle this case here
  } else {
    //it's not a descendant, handle this case here
  }
})
```

In the while loop we use the assignment operator `=` to iterate until there's no parent node anymore, in that case `el.parentNode` returns `null` and the while loop ends.

It's a way to go "up" in the elements tree until it finishes.
