🌐 Ultimate Universal JavaScript DOM Cheat Sheet

1️⃣ DOM Basics

DOM = Document Object Model → HTML represented as a tree of nodes.

<h1 id="title">Hello World</h1>
<p class="text">Paragraph</p>

2️⃣ Selecting Elements

MethodSelectsExample
getElementById()Single element by iddocument.getElementById("title")
getElementsByClassName()All elements with classdocument.getElementsByClassName("text")[0]
getElementsByTagName()All elements by tagdocument.getElementsByTagName("p")[0]
querySelector()First CSS selector matchdocument.querySelector(".text")
querySelectorAll()All CSS selector matchesdocument.querySelectorAll("p")
let title = document.getElementById("title");
console.log(title.innerText);

3️⃣ Changing Content

let title = document.getElementById("title");
title.innerText = "New Title";
title.innerHTML = "<span>HTML!</span>";

4️⃣ Style & Attributes

title.style.color = "red";
title.style.fontSize = "30px";
let link = document.querySelector("a");
link.setAttribute("href", "https://example.com");

5️⃣ Creating & Adding Elements

let para = document.createElement("p");
para.innerText = "I am new!";
document.body.appendChild(para);

6️⃣ Removing Elements

document.querySelector("p").remove();

7️⃣ Event Handling & Delegation

let btn = document.createElement("button");
btn.innerText = "Click Me";
document.body.appendChild(btn);
btn.addEventListener("click", () => alert("Clicked!"));
document.body.addEventListener("click", e => {
  if(e.target.tagName === "BUTTON") alert("Button clicked via delegation!");
});

8️⃣ DOM Traversal

PropertyExample
parentNodeel.parentNode
childNodesel.childNodes
childrenel.children
nextSiblingel.nextSibling
previousSiblingel.previousSibling
nextElementSiblingel.nextElementSibling
previousElementSiblingel.previousElementSibling

9️⃣ DOM Animations

document.getElementById("animateBtn").addEventListener("click", () => {
  const box = document.getElementById("box");
  let pos = 0;
  const interval = setInterval(() => {
    if(pos >= 200) clearInterval(interval);
    pos++;
    box.style.transform = `translateX(${pos}px)`;
  }, 5);
});

🔟 Dynamic Forms

document.getElementById("dynamicForm").addEventListener("submit", e => {
  e.preventDefault();
  const name = e.target.name.value;
  document.getElementById("formResult").innerText = "Hello " + name;
});

1️⃣1️⃣ Drag & Drop

Drag Me
const box = document.getElementById('dragBox');
let offsetX, offsetY;
box.onmousedown = e => {
  offsetX = e.offsetX;
  offsetY = e.offsetY;
  document.onmousemove = e => {
    box.style.left = e.pageX - offsetX + 'px';
    box.style.top = e.pageY - offsetY + 'px';
  }
  document.onmouseup = () => document.onmousemove = null;
};

1️⃣2️⃣ Sortable List

const list = document.getElementById('sortable');
let dragItem;
list.addEventListener('dragstart', e => dragItem = e.target);
list.addEventListener('dragover', e => e.preventDefault());
list.addEventListener('drop', e => {
  if(e.target.tagName === 'LI') {
    list.insertBefore(dragItem, e.target.nextSibling);
  }
});

1️⃣3️⃣ Image Gallery

document.querySelectorAll('.thumb').forEach(img=>{
  img.addEventListener('click', e => {
    document.getElementById('mainImg').src = e.target.src;
  });
});

1️⃣4️⃣ Tabs

Content 1
document.querySelectorAll('.tabBtn').forEach(btn=>{
  btn.addEventListener('click', e=>{
    document.querySelectorAll('[id^=tab]').forEach(t=>t.style.display='none');
    document.getElementById(e.target.dataset.tab).style.display='block';
  });
});

1️⃣5️⃣ Modal Window

document.getElementById('openModal').onclick = ()=> document.getElementById('modal').style.display='block';
document.getElementById('closeModal').onclick = ()=> document.getElementById('modal').style.display='none';