DOM: Basics (ডম)
DOM কী, element খোঁজা, content বদলানো, style, attribute — পেজ নিয়ে কাজের শুরু বাংলায়।
DOM (Document Object Model) হলো HTML ডকুমেন্টের JavaScript-দৃশ্য representation। এর মাধ্যমে JS পেজের content, structure ও style নিয়ন্ত্রণ করে — বাটন চাপলে লেবেল বদলানো, পেজে সংখ্যা ওঠানো — সবই DOM।
DOM কী?
ব্রাউজার HTML পড়ে একটি tree বানায় — parent/child element-এর ধারা। এই tree-তেই JavaScript অ্যাক্সেস পায়। document হলো সেই tree-র প্রবেশদ্বার।
Element খোঁজা
// id দিয়ে
const header = document.getElementById("header");
// class/CSS selector দিয়ে — প্রথমটি
const card = document.querySelector(".card");
// সবগুলো — NodeList (লুপ করা যায়)
const cards = document.querySelectorAll("div.card");
console.log(header);
console.log(cards.length);querySelector একটাই (প্রথম), querySelectorAll সবগুলো — NodeList-এ, যেটি forEach/for...of দিয়ে লুপ করা যায়।
content বদলানো
<p id="status">লোড হচ্ছে...</p>
<script>
const status = document.getElementById("status");
status.textContent = "সম্পন্ন!";
console.log(status.textContent); // সম্পন্ন!
</script>textContent নাকি innerHTML
<div id="box"></div>
<script>
const box = document.getElementById("box");
box.textContent = "<b>টেক্সট হিসেবে</b>";
console.log(box.innerHTML); // <b>... — রেন্ডার হয় না
box.innerHTML = "<b>HTML হিসেবে</b>";
console.log(box.innerHTML); // <b>HTML হিসেবে</b> — রেন্ডার হয়
</script>innerHTML-এ ব্যবহারকারীর input ঢোকালে তৈরি হয় XSS ঝুঁকি — শুধু টেক্সট দরকার হলে সবসময় textContent ব্যবহার করুন।
style বদলানো
const title = document.querySelector("h1");
title.style.color = "green";
title.style.fontSize = "32px";
title.style.backgroundColor = "#eee";
// দূরত্ব: camelCase — background-color → backgroundColorAttribute
const img = document.querySelector("img");
img.setAttribute("src", "photo.jpg");
img.setAttribute("alt", "আমার ছবি");
console.log(img.getAttribute("alt")); // আমার ছবি
img.removeAttribute("alt");
// ছোট attribute shortcuts
img.src = "photo2.jpg";
img.alt = "নতুন ছবি";ফর্মের মান পড়া
<input id="email" type="email" />
<script>
const input = document.getElementById("email");
input.value = "rahim@example.com";
console.log(input.value); // rahim@example.com
console.log(input.type); // email
</script>| কাজ | উপায় |
|---|---|
| id দিয়ে খোঁজা | getElementById |
| CSS selector | querySelector / querySelectorAll |
| টেক্সট বদল | textContent |
| HTML বদল | innerHTML (সতর্ক) |
| স্টাইল | element.style |
| attribute | setAttribute / getAttribute |
| form মান | element.value |
যেকোনো পেজ খোলেন (F12), console-এ document.querySelector('h1').style.color='red' লিখে চালান — DOM-এর জাদু নিজেই দেখুন।