HTML DOM Elements (Nodes)

در DOM، هر عنصر HTML به عنوان یک Node شناخته می‌شود.
Node کوچکترین بخش از ساختار درختی DOM است که می‌تواند عنصر، متن، کامنت یا Document باشد.

🔹 1. انواع Nodeها

نوع Nodeتوضیح
Elementهر تگ HTML مثل <div>, <p>, <a>
Textمتن داخل عناصر HTML
Commentکامنت‌ها در HTML
Documentکل سند HTML
DocumentFragmentساختار موقت برای تغییرات DOM
AttributeAttributeهای عناصر

مثال:

let p = document.getElementById("para"); console.log(p.nodeType); // 1 → Element console.log(p.firstChild.nodeType); // 3 → Text

🔹 2. ویژگی‌های Node

  • nodeName → نام Node

  • nodeType → نوع Node (عدد)

  • nodeValue → مقدار Node (برای Text یا Comment)

let para = document.getElementById("para"); console.log(para.nodeName); // "P" console.log(para.nodeType); // 1 (Element) console.log(para.firstChild.nodeValue); // متن داخل P

🔹 3. دسترسی به والد و فرزندان

  • parentNode → والد

  • childNodes → تمام فرزندان (شامل Text و Comment)

  • firstChild / lastChild → اولین و آخرین Node

  • children → فقط فرزندان Element

let container = document.getElementById("container"); console.log(container.parentNode); console.log(container.childNodes); // شامل text و comment console.log(container.children); // فقط elementها

🔹 4. پیمایش برادران

  • previousSibling / nextSibling → برادران شامل Text و Comment

  • previousElementSibling / nextElementSibling → برادران Element

let item = document.getElementById("item2"); console.log(item.previousElementSibling); // عنصر قبلی console.log(item.nextElementSibling); // عنصر بعدی

🔹 5. ایجاد و تغییر Node

  • ایجاد Node جدید: document.createElement(), document.createTextNode()

  • اضافه کردن به DOM: appendChild(), insertBefore()

  • حذف Node: remove()

  • جایگزینی Node: replaceChild(newNode, oldNode)

let newDiv = document.createElement("div"); let textNode = document.createTextNode("Hello Node"); newDiv.appendChild(textNode); document.body.appendChild(newDiv);

🔹 6. تفاوت Node و Element

ویژگیNodeElement
شاملتمام Nodeهافقط عناصر HTML
دسترسیchildNodeschildren
شامل متن و کامنت

✅ خلاصه

  • Node → کوچکترین واحد DOM: Element, Text, Comment, Document و غیره

  • ویژگی‌های مهم: nodeName, nodeType, nodeValue

  • پیمایش: والد (parentNode), فرزندان (childNodes, children), برادران (previousSibling, nextSibling)

  • ایجاد و تغییر Node: createElement, createTextNode, appendChild, replaceChild, remove

  • تفاوت Node و Element → Node شامل همه انواع، Element فقط تگ‌های HTML