گره (DOM Node)
در DOM، «گره (Node)» یک بخش از درخت سند است. یعنی هر تگ، متن، یا ویژگی، یک گره است. بنابراین، با شناخت گره DOM راحت تر پیمایش می کنی. مثل راهروهای مدرسه که هر کلاس، یک گره محسوب می شود.
شیء گره (Node Object)
شیء Node یک گره درخت سند را نمایش می دهد. گره می تواند Element، Attr، یا Text باشد. همه اشیا، خصوصیات والد و فرزند را دارند. اما همه اجازه فرزند ندارند. مثلاً Text فرزند ندارد و افزودن فرزند خطا می دهد.
انواع گره (Node Types) را ببین تا تفاوت ها روشن شود.
ویژگی های مهم Node
طبق منبع، این ویژگی ها کلیدی هستند. هر کدام کاربردی مشخص دارد:
attributes: فهرست ویژگی ها برای Element.baseURI: نشانی پایه مطلق گره.childNodes: فهرست فرزندان گره.firstChildوlastChild: اولین و آخرین فرزند.nextSiblingوpreviousSibling: همسایه های مجاور.nodeName: نام گره بر اساس نوع.nodeType: نوع عددی گره.nodeValue: مقدار گره، بسته به نوع.ownerDocument: سند ریشه گره.parentNode: والد مستقیم گره.prefix: پیشوند فضای نام.textContent: متن گره و نوادگان.
منبع W3Schools جدول کامل ویژگی ها را دارد.
متدهای مهم Node
این متدها برای ساخت، جابجایی، و مقایسه گره ها کاربردی اند:
appendChild(): افزودن فرزند در انتهای لیست.insertBefore(): درج فرزند پیش از فرزند موجود.removeChild()وreplaceChild(): حذف و جایگزینی فرزند.cloneNode(): کپی از گره.hasChildNodes()وhasAttributes(): بررسی وجود فرزند یا ویژگی.normalize(): یک دست سازی گره های Text.compareDocumentPosition(): مقایسه جایگاه دو گره.isEqualNode()وisSameNode(): برابری و یکتایی.lookupNamespaceURI()وlookupPrefix(): جستجوی فضای نام.
نکته: اول نوع گره را بسنج. سپس از ویژگی یا متد مناسب استفاده کن.
تمرین گام به گام
- یک سند XML ساده باز کن.
- روی Element برو و
childNodesرا بخوان. - با
appendChild()یک فرزند جدید اضافه کن. - با
removeChild()آن را حذف کن.
برای مرور ادامه ساختار، به فهرست گره ها (NodeList) برو.
جمع بندی سریع
- گره DOM واحد اصلی درخت است.
- برخی گره ها فرزند ندارند.
- nodeName و nodeValue وابسته به نوع اند.
- متدها، ساخت و جابجایی را آسان می کنند.