خصوصية 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; }