اطلاعات گره (DOM Node Info)
اینجا با «اطلاعات گره DOM» آشنا می شویم. گره (Node) یعنی واحد درخت سند. هر گره ویژگی (Property) و متد دارد. سپس نام، مقدار و نوع گره را ساده می خوانیم.
سه ویژگی مهم: nodeName، nodeValue، nodeType
هر گره یک شیء است. بنابراین ویژگی ها با جاوااسکریپت تغییر یا خوانده می شوند. این سه، هسته کارند.
nodeName: نام گره
- فقط خواندنی است.
- برای عنصر، همان نام تگ است.
- برای متن، همیشه #text است.
- برای سند، همیشه #document است.
<!DOCTYPE html>
<html>
<body>
<p id="out1"></p>
<script>
var n;
n = xmlDoc.getElementsByTagName("title")[0];
document.getElementById("out1").innerHTML = n.nodeName;
<\/script>
</body>
</html>
nodeValue: مقدار گره
- برای عنصر، تعریف نشده است.
- برای متن، خود متن است.
- برای ویژگی، مقدار ویژگی است.
<!DOCTYPE html>
<html>
<body>
<p id="out2"></p>
<script>
var textNode;
var txt;
textNode = xmlDoc.getElementsByTagName("title")[0].childNodes[0];
txt = textNode.nodeValue;
document.getElementById("out2").innerHTML = txt;
<\/script>
</body>
</html>
تغییر مقدار متن یک عنصر
ابتدا نود متن را بگیر. سپس مقدارش را عوض کن. درست مثل تغییر اسم در لیست کلاس.
<!DOCTYPE html>
<html>
<body>
<p id="out3"></p>
<script>
var textNode;
textNode = xmlDoc.getElementsByTagName("title")[0].childNodes[0];
textNode.nodeValue = "Easy Cooking";
document.getElementById("out3").innerHTML = textNode.nodeValue;
<\/script>
</body>
</html>
nodeType: نوع گره
nodeType فقط خواندنی است. چند نوع مهم: عنصر=1، ویژگی=2، متن=3، نظر=8، سند=9.
<!DOCTYPE html>
<html>
<body>
<div id="types"></div>
<script>
var root;
var t;
var info;
root = xmlDoc.documentElement;
t = root.nodeType;
info = "root: " + t;
document.getElementById("types").innerHTML = info;
<\/script>
</body>
</html>
گام های تمرینی سریع
- فایل XML را در xmlDoc بارگذاری کن.
- گره هدف را پیدا کن.
- nodeName یا nodeValue را بخوان.
- در صورت نیاز مقدار را عوض کن.
نکته: متن همیشه در «گره متن» ذخیره می شود؛ نه خود عنصر.
برای دسترسی ها به دسترسی گره ها برو. همچنین فهرست ها را در NodeList ببین. برای مرور کامل اطلاعات گره DOM این صفحه مرجع توست.
جمع بندی سریع
- nodeName نام دقیق گره را می دهد.
- nodeValue متن یا مقدار صفت است.
- nodeType نوع گره را مشخص می کند.
- متن داخل گره متن قرار دارد.