ویژگی nextSibling XML DOM
تعریف و استفاده
nextSibling
این ویژگی نقاطی که پس از یک نقطه قرار دارند را برمیگرداند (نقطههایی که در یک سطح یکسان هستند و به عنوان نقطه بعدی در نظر گرفته میشوند).
اگر چنین نقاطی وجود ندارد، این ویژگی null را برمیگرداند.
قوانین دستور زبان
nodeObject.nextSibling
توجه داشته باشید:Firefox و بسیاری از مرورگرهای دیگر خالی یا خطوط شکست را به عنوان نقطههای متن در نظر میگیرند، در حالی که Internet Explorer اینطور نیست. بنابراین، در مثالهای زیر از یک تابع برای بررسی نوع نقطه برادر بعدی استفاده میکنیم.
نقطهای که به عنوان nodeType 1 در نظر گرفته میشود، بنابراین اگر برادر بعدی آن نقطهای نیست که به عنوان نقطهای در نظر گرفته شود، آن به نقطه بعدی حرکت میکند و بررسی میکند که آیا این نقطه به عنوان نقطهای است یا خیر. این کار تا زمانی که نقطه همسطح بعدی (باید به عنوان نقطهای باشد) پیدا شود ادامه مییابد. بنابراین، نتیجه در تمام مرورگرها صحیح است.
نکته:}برای اطلاعات بیشتری در مورد تفاوتهای بین مرورگرها، به بخش DOM مرورگر در آموزش XML DOM مراجعه کنید.
مثال
مثال 1
کد زیر "books.xml" را به xmlDoc بارگذاری میکند و از نقطه بعدی <title> اولین نقطه دریافت میکند:
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_nextsibling(n) { var x = n.nextSibling; while (x.nodeType != 1) { x = x.nextSibling; {} return x; {} function myFunction(xml) { var xmlDoc = xml.responseXML; var x = xmlDoc.getElementsByTagName("title")[0]; var y = get_nextsibling(x); document.getElementById("demo").innerHTML = x.nodeName + " = " + x.childNodes[0].nodeValue + "<br>همسایه بعدی: " + y.nodeName + " = " + y.childNodes[0].nodeValue; {}
مثال 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_previoussibling(n) { var x = n.previousSibling; while (x.nodeType != 1) { x = x.previousSibling; {} return x; {} function myFunction(xml) { var xmlDoc = xml.responseXML; var x = xmlDoc.getElementsByTagName("author")[0]; var y = get_previoussibling(x); document.getElementById("demo").innerHTML = x.nodeName + " = " + x.childNodes[0].nodeValue + "<br>برادر قبلی: " + y.nodeName + " = " + y.childNodes[0].nodeValue; {}