ویژگی previousSibling XML DOM
تعریف و استفاده
previousSibling
این ویژگی نقطهای که در نزدیکی نقطهی جاری قرار دارد را برمیگرداند (نقطهی بعدی در همان سطح درخت).
اگر چنین نقاطی وجود ندارد، این ویژگی null را برمیگرداند.
نحوهی نوشتن
nodeObject.previousSibling
توجه داشته باشید:Firefox و بیشتر مرورگرهای دیگر خالی یا خطوط خالی را به عنوان نقطهی متن در نظر میگیرند، در حالی که Internet Explorer اینطور نیست. در مثال زیر، ما از یک تابع برای بررسی نوع نقطهی همسطح قبلی استفاده میکنیم.
نقطهای که به عنوان نقطهی nodeType 1 در نظر گرفته میشود، بنابراین اگر نقطهی همسطح قبلی یک نقطهی عناصر نباشد، به نقطهی بعدی حرکت میکند و بررسی میکند که آیا این نقطه یک نقطهی عناصر است یا خیر. این عمل به همین صورت ادامه خواهد داشت تا نقطهی همسطح قبلی (باید یک نقطهی عناصر باشد) پیدا شود. به این ترتیب، نتایج در همهی مرورگرها صحیح خواهد بود.
توضیح:برای اطلاعات بیشتری در مورد تفاوتهای بین مرورگرها، لطفاً به بخش DOM مرورگر در آموزش XML DOM مراجعه کنید.
مثال
مثال 1
این کد "books.xml" را به xmlDoc بارگذاری میکند و از اولین عنصر <author> نقطه قبل از همسطح را میگیرد:
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; }
مثال 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_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; }