Day 13

DOM Manipulation

18 min
JavaScript 100 Days

DOM (Document Object Model) HTML ka tree representation hai. JavaScript se DOM manipulate karke webpage dynamically change karte hain — yahi actual web development hai.

Elements Select karna

querySelector aur getElementById se HTML elements select karo.

dom.js
javascript
// By ID
let heading = document.getElementById("main-heading");

// By class (first match)
let btn = document.querySelector(".submit-btn");

// By tag
let paragraphs = document.querySelectorAll("p");

// By CSS selector (powerful!)
let activeLink = document.querySelector("nav a.active");

// console.log to see
console.log(heading);

Content & Styling Change karna

textContent, innerHTML, aur style se elements modify karo.

modify.js
javascript
let heading = document.getElementById("title");

// Text change
heading.textContent = "New Heading!";

// HTML change (careful with XSS)
heading.innerHTML = "Hello <span>World</span>";

// Style change
heading.style.color = "red";
heading.style.fontSize = "32px";
heading.style.backgroundColor = "var(--primary)";

// CSS classes
heading.classList.add("highlight");
heading.classList.remove("old-class");
heading.classList.toggle("active");
heading.classList.contains("highlight"); // true/false

// Attributes
let img = document.querySelector("img");
img.setAttribute("src", "new-image.jpg");
img.getAttribute("alt");

Elements Create karna

New elements banao aur DOM mein add karo.

create.js
javascript
// New element create karo
let newPara = document.createElement("p");
newPara.textContent = "New paragraph!";
newPara.classList.add("my-para");

// DOM mein add karo
document.body.appendChild(newPara);

// kisi element ke andar add karo
let container = document.getElementById("container");
container.appendChild(newPara);

// Pehle insert karo
container.prepend(newPara);

// Remove karo
newPara.remove();

🎯 Practice Challenge

HTML page banao with a ul list. JavaScript se 5 items dynamically add karo using createElement aur appendChild.