Episode 34 of 46
Traversing the DOM
Learn how to navigate between parent, child, and sibling elements in the DOM.
Traversing means navigating between elements in the DOM tree — moving to parents, children, and siblings.
Parent Elements
let item = document.querySelector("li");
item.parentElement; // The <ul> or <ol>
item.parentNode; // Usually the same as parentElement
Child Elements
let list = document.querySelector("ul");
list.children; // All child elements (HTMLCollection)
list.firstElementChild; // First child element
list.lastElementChild; // Last child element
list.childElementCount; // Number of children
Sibling Elements
let item = document.querySelector(".active");
item.nextElementSibling; // Next sibling element
item.previousElementSibling; // Previous sibling element
Practical Example
// HTML:
// <ul id="menu">
// <li>Home</li>
// <li class="active">About</li>
// <li>Contact</li>
// </ul>
let active = document.querySelector(".active");
console.log(active.textContent); // "About"
console.log(active.parentElement.id); // "menu"
console.log(active.nextElementSibling.textContent); // "Contact"
console.log(active.previousElementSibling.textContent); // "Home"
Walking the DOM
// Loop through all children of an element
let nav = document.querySelector("nav");
for (let child of nav.children) {
console.log(child.tagName, child.textContent);
}
// Find a specific parent
let deepElement = document.querySelector(".deeply-nested");
let section = deepElement.closest("section"); // Finds nearest ancestor