Check if an element is a descendant of another

Assume that we want to find out if the child element is a descendant of the parent element.

1. Use the contains method

const isDescendant = parent.contains(child);

2. Go up from the child until see the parent

// Check if `child` is a descendant of `parent`
const isDescendant = function(parent, child) {
let node = child.parentNode;
while (node) {
if (node === parent) {
return true;

// Traverse up to the parent
node = node.parentNode;

// Go up until the root but couldn't find the `parent`
return false;


Check if an element has given class
Check if an element is in the viewport