خصیت firstChild XML DOM
تعریف و استفاده
firstChild
این خاصیت گره اولین فرزند مستند را بازمیگرداند.
اسلوب نوشتاری
documentObject.firstChildتوجه داشته باشید:Firefox و بیشتر مرورگرهای دیگر فضای خالی یا خطوط خروجی را به عنوان گره متن در نظر میگیرند، در حالی که Internet Explorer این کار را نمیکند. بنابراین، در مثالهای زیر، ما از یک تابع برای بررسی نوع گره اولین فرزند استفاده میکنیم.
گرههای عنصر nodeType به 1 هستند، بنابراین اگر اولین فرزند یک گره عنصر نیست، آن به گره بعدی حرکت میکند و بررسی میکند که آیا گره بعدی یک گره عنصر است یا خیر. این عمل تا زمانی که اولین گره (باید یک گره عنصر باشد) پیدا شود ادامه دارد. به این ترتیب، نتایج در همه مرورگرها صحیح هستند.
توضیح:برای اطلاعات بیشتری در مورد تفاوتهای بین مرورگرها، بخش DOM مرورگر در آموزش XML DOM را بازدید کنید.
مثال
مثال 1
این کد "books.xml" را به xmlDoc بارگذاری کرده و نام گره اولین فرزند و نوع گره آن را نمایش میدهد:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // بررسی آیا اولین گره یک گره عنصر است یا خیر function get_firstchild(n) { var x = n.firstChild; while (x.nodeType != 1) { x = x.nextSibling; } return x; } function myFunction(xml) { var xmlDoc = xml.responseXML; var x = get_firstchild(xmlDoc); document.getElementById("demo").innerHTML = "نام گره: " + x.nodeName +" " (nodetype: " + x.nodeType + ")<br>"; }
مثال 2
دریافت آخرین فرزند مستند:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // بررسی آیا آخرین گره یک گره عنصر است یا خیر function get_lastchild(n) { var x = n.lastChild; while (x.nodeType != 1) { x = x.previousSibling; } return x; } function myFunction(xml) { var xmlDoc = xml.responseXML; // دریافت آخرین فرزند مستند var x = get_lastchild(xmlDoc); // دریافت آخرین فرزند عنصر ریشه var y = get_lastchild(xmlDoc.documentElement); document.getElementById("demo").innerHTML = "نام گره: " + x.nodeName +" " (nodetype: " + x.nodeType + ")<br>" + "نام گره: " + y.nodeName + " (nodetype: " + y.nodeType + ")<br>"; }