XML DOM compareDocumentPosition()方法

定义和用法

compareDocumentPosition() DOM层次结构(文档)中两个节点的位置进行比较的方法。

Sözdizimi

nodeObject.compareDocumentPosition(node)

Parametre

Parametre Açıklama
node Gerekli. Node nesnesi. Karşılaştırılan düğümü belirler.

Teknik Açıklamalar

DOM Sürümü: Core Level 3 Node Object
Dönüşüm değeri:

Sayılar, iki düğümün nispi konumunu belirtir. Olası dönüşüm değerleri:

  • 1 - İlişkili değil, iki düğüm aynı belgede değil.
  • 2 - Belirtilen düğüm, mevcut düğümün önünde yer alır.
  • 4 - Belirtilen düğüm, mevcut düğümün ardından gelir.
  • 8 - Belirtilen düğüm, mevcut düğümü içerir.
  • 16 - Belirtilen düğüm, mevcut düğüm içinde bulunur.
  • 32 - Belirtilen düğüm ve mevcut düğüm ortak bir konteyner düğümüne sahip değil veya iki düğüm aynı düğmanın farklı özellikleridir.

Dikkat:Dönüşüm de değerlerin kombinasyonu olabilir. Örneğin, dönüşüm değeri 20, belirtilen düğümün mevcut düğüm (16) içinde bulunduğunu ve belirtilen düğümün mevcut düğümün ardından (4) olduğunu belirtir.

Örnek

Aşağıdaki kod, "books.xml" dosyasını xmlDoc'ya yükler ve DOM hiyerarşisindeki iki düğümün (ilk ve üçüncü <book> elementleri) konumunu karşılaştırır:

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

Kişisel olarak deneyin

Çoğu tarayıcı, boşluk veya yeni satırı metin düğümü olarak görür, IE 9 ve daha eski sürümleri değil. Bu nedenle, yukarıdaki örnekte, çoğu tarayıcı 4 çıktısını verecek, ancak IE 9 ve daha eski sürümleri 2 çıktısını verecektir.

Tarayıcı Desteği

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Desteği Desteği Desteği Desteği Desteği

Tüm popüler tarayıcılar compareDocumentPosition() yöntemini desteklemektedir.

Açıklama:Internet Explorer 9 ve daha eski sürümler bu yöntemi desteklememektedir.