JavaScript DOM Manipulation

Complete DOM manipulation guide: selecting elements, creating, modifying, and event handling.

Selecting Elements

// Get element by ID
const elem = document.getElementById("myId");

// Query selector
const elem = document.querySelector(".class");
const elems = document.querySelectorAll(".class");

// By class/tag
const elems = document.getElementsByClassName("myClass");

Creating Elements

// Create element
const div = document.createElement("div");
div.textContent = "Hello";
div.className = "myClass";

// Append to DOM
document.body.appendChild(div);
parent.insertBefore(newNode, refNode);

Modifying Content

// Text content
elem.textContent = "New text";
elem.innerHTML = "Bold";

// Attributes
elem.setAttribute("href", "url");
elem.getAttribute("href");
elem.removeAttribute("href");

CSS & Classes

// Modify classes
elem.classList.add("active");
elem.classList.remove("hidden");
elem.classList.toggle("visible");
elem.classList.contains("active");

// Inline styles
elem.style.color = "red";
elem.style.display = "none";

Removing Elements

// Remove element
elem.remove();
parent.removeChild(elem);

// Clear all children
elem.innerHTML = "";

Event Listeners

// Add event listener
elem.addEventListener("click", (e) => {
    console.log("Clicked!");
    e.preventDefault();
});

// Remove listener
elem.removeEventListener("click", handler);

Traversing DOM

// Parent/children
elem.parentElement
elem.children
elem.firstElementChild
elem.lastElementChild

// Siblings
elem.nextElementSibling
elem.previousElementSibling

Element Properties

// Dimensions
elem.offsetWidth
elem.offsetHeight
elem.clientWidth
elem.scrollHeight

// Position
elem.offsetTop
elem.offsetLeft
elem.getBoundingClientRect()