XML DOM compareDocumentPosition() روش

تعریف و استفاده

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 و قبل از آن IE این کار را نمی‌کند. بنابراین، در مثال بالا، بیشتر مرورگرها 4 را به عنوان خروجی دارند، در حالی که نسخه‌های 9 و قبل از آن IE 2 را به عنوان خروجی دارند.

پشتیبانی مرورگرها

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
پشتیبانی پشتیبانی پشتیبانی پشتیبانی پشتیبانی

تمام مرورگرهای اصلی روش compareDocumentPosition() را پشتیبانی می‌کنند.

توضیح:نسخه‌های 9 و قدیمی‌تر از Internet Explorer این روش را پشتیبانی نمی‌کنند.