خصائص nextSibling في XML DOM

التعريف والاستخدام

nextSibling تعود الخاصية بـ nextSibling العنصر التالي من نفس المستوى للعنصر المحدد (العنصر التالي في نفس مستوى الشجرة).

إذا لم يكن هناك مثل هذا العنصر، فإن هذه الخاصية تعود بـ null.

النحو

elementNode.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>Next sibling: " + y.nodeName + " = " +
    y.childNodes[0].nodeValue;
}

جرب بنفسك

مثال 2

استخدام طريقة previousSibling للحصول على العنصر السابق للمستوى نفسه:

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;
}

جرب بنفسك