Metodo compareDocumentPosition() dell'XML DOM

Definizione e uso

compareDocumentPosition() Confronta la posizione di due nodi nel DOM (documento) dell'albero gerarchico.

Sintassi

nodeObject.compareDocumentPosition(node)

Parametro

Parametro Descrizione
node Obbligatorio. Oggetto Node. Specifica il nodo con cui confrontare il nodo corrente.

Dettagli tecnici

Versione DOM: Core Level 3 Node Object
Valore di ritorno:

Numeri che rappresentano la posizione relativa dei due nodi. I valori possibili sono:

  • 1 - Non ci sono relazioni, i due nodi non appartengono allo stesso documento.
  • 2 - Il nodo specificato si trova prima del nodo corrente.
  • 4 - Il nodo specificato segue il nodo corrente.
  • 8 - Il nodo specificato contiene il nodo corrente.
  • 16 - Il nodo specificato è contenuto nel nodo corrente.
  • 32 - Il nodo specificato e il nodo corrente non hanno un comune nodo contenitore, o i due nodi sono attributi diversi dello stesso nodo.

Attenzione:Il valore di ritorno può anche essere una combinazione di valori. Ad esempio, il valore di ritorno 20 indica che il nodo specificato è contenuto nel nodo corrente (16) e segue il nodo corrente (4).

Esempio

Il codice seguente carica "books.xml" in xmlDoc e confronta la posizione di due nodi (il primo e il terzo elemento <book>) nella struttura 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);
}

Prova personalmente

La maggior parte dei browser considera gli spazi bianchi o le nuove righe come nodi di testo, mentre Internet Explorer 9 e le versioni precedenti non lo fanno. Pertanto, nell'esempio sopra, la maggior parte dei browser restituirà 4, mentre Internet Explorer 9 e le versioni precedenti restituiranno 2.

Supporto dei browser

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Supporto Supporto Supporto Supporto Supporto

Tutti i browser principali supportano il metodo compareDocumentPosition().

Nota:Internet Explorer 9 e versioni precedenti non supportano questo metodo.