مетод compareDocumentPosition() الخاص بـ XML DOM

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

compareDocumentPosition() يقارن موقع العناصر في بنية المستند (الوثيقة) المكونة من DOM.

النحو

nodeObject.compareDocumentPosition(node)

المتغيرات

المتغيرات وصف
node مطلوب. العنصر Node. يحدد العنصر الذي سيتم مقارنته مع العنصر الحالي.

تفاصيل التقنية

إصدار DOM: Core Level 3 Node Object
العائد:

أرقام تعبر عن مواقع العناصر النسبية لموقع العنصر الآخر. القيم المحتملة للعائد هي:

  • 1 - لا يوجد علاقة، العنصران لا ينتميان إلى نفس المستند.
  • 2 - يقع العنصر المحدد قبل العنصر الحالي.
  • 4 - يتبع العنصر المحدد العنصر الحالي.
  • 8 - يحتوي العنصر المحدد على العنصر الحالي.
  • 16 - يحتوي العنصر المحدد على العنصر الحالي.
  • 32 - لا يوجد عنصر حامل مشترك بين العنصر المحدد والعنصر الحالي، أو العنصران هما نفس العنصر المختلفة في الخصائص.

ملاحظة:يمكن أن يكون العائد أيضًا مجموعة من القيم. على سبيل المثال، العائد 20 يعني أن العنصر المحدد يحتوي على العنصر الحالي (16) ويتبع العنصر الحالي (4).

مثال

الخطوط التالية ستقوم بتحميل "books.xml" إلى xmlDoc وتقارن مواقع العناصر (العناصر <book> الأولى والثالثة) في بنية DOM:

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 myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName('book')[0];
    var y = xmlDoc.getElementsByTagName('book')[2];
    document.getElementById("demo").innerHTML =
    x.compareDocumentPosition(y);
}

جرب ذلك بنفسك

معظم المتصفحات تعتبر الفراغات أو السطور الجديدة نقاط نصية، بينما لا تفعل ذلك إصدارات إنترنت إكسبلورر 9 وأقل. لذلك، في المثال السابق، معظم المتصفحات ستعمل 4، بينما ستعمل إصدارات إنترنت إكسبلورر 9 وأقل 2.

دعم المتصفحات

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
دعم دعم دعم دعم دعم

يدعم جميع المتصفحات الرئيسية طريقة compareDocumentPosition().

ملاحظة:Internet Explorer 9 وكل الإصدارات السابقة لا يدعمون هذه الطريقة.