Episode 39 of 46

Removing Elements from the DOM

Learn how to remove and replace HTML elements with JavaScript.

Just as you can add elements, you can also remove and replace them dynamically.

remove() — Modern Method

let element = document.querySelector(".old-banner");
element.remove();  // Gone! Simple as that.

removeChild() — Classic Method

let parent = document.querySelector(".container");
let child = document.querySelector(".remove-me");

parent.removeChild(child);

Replacing Elements

// Create replacement
let newHeading = document.createElement("h2");
newHeading.textContent = "Updated Title";

// Replace old with new
let oldHeading = document.querySelector("h1");
oldHeading.replaceWith(newHeading);

// Classic way
let parent = oldHeading.parentElement;
parent.replaceChild(newHeading, oldHeading);

Clearing All Children

let container = document.querySelector(".container");

// Method 1: Set innerHTML to empty
container.innerHTML = "";

// Method 2: Remove children one by one
while (container.firstChild) {
    container.removeChild(container.firstChild);
}

// Method 3: replaceChildren with nothing
container.replaceChildren();

Practical Example — Remove List Items on Click

let list = document.querySelector("ul");

list.addEventListener("click", function(e) {
    if (e.target.tagName === "LI") {
        e.target.remove();
        console.log("Item removed!");
    }
});

Hiding vs Removing

// Hide (still in DOM, just invisible)
element.style.display = "none";

// Remove (completely gone from DOM)
element.remove();