Metoda compareDocumentPosition() w XML DOM

Definicja i użycie

compareDocumentPosition() Porównuje pozycje dwóch węzłów w hierarchii DOM (dokument).

Syntaktyka

nodeObject.compareDocumentPosition(node)

Parametry

Parametry Opis
node Wymagane. Obiekt Node. Określa węzeł, z którym porównywany jest bieżący węzeł.

Szczegóły techniczne

Wersja DOM: Core Level 3 Node Object
Wartość zwrócona:

Liczby, które reprezentują pozycję węzłów względem siebie. Możliwe wartości zwrócone to:

  • 1 - Brak związku, dwa węzły nie należą do tego samego dokumentu.
  • 2 - Określony węzeł znajduje się przed bieżącym węzłem.
  • 4 - Określony węzeł znajduje się za bieżącym węzłem.
  • 8 - Określony węzeł zawiera bieżący węzeł.
  • 16 - Określony węzeł jest zawarty w bieżącym węźle.
  • 32 - Określony węzeł i bieżący węzeł nie mają wspólnego kontenera węzła, lub dwa węzły są różnymi atrybutami tego samego węzła.

Uwaga:Wartość zwrócona może być również kombinacją wartości. Na przykład, wartość zwrócona 20 oznacza, że określony węzeł jest zawarty w bieżącym węźle (16) i znajduje się za bieżącym węzłem (4).

Przykład

Poniższy kod załaduje "books.xml" do xmlDoc i porówna pozycje dwóch węzłów (pierwszego i trzeciego elementu <book>) w hierarchii 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);
}

Spróbuj samodzielnie

Większość przeglądarek traktuje białe przestrzenie lub nowe wiersze jako węzły tekstowe, podczas gdy w przeglądarce Internet Explorer 9 i wcześniejszych wersji nie jest to prawda. Dlatego w powyższym przykładzie, większość przeglądarek wyświetli 4, podczas gdy Internet Explorer 9 i wcześniejsze wersje wyświetlą 2.

Obsługa przeglądarek

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Obsługa Obsługa Obsługa Obsługa Obsługa

Wszystkie główne przeglądarki obsługują metodę compareDocumentPosition().

Komentarz:Przed wersją Internet Explorer 9 metoda ta nie jest obsługiwana.