Método compareDocumentPosition() del XML DOM

Definición y uso

compareDocumentPosition() Comparar la posición de dos nodos en la estructura jerárquica del DOM (documento).

Sintaxis

nodeObject.compareDocumentPosition(node)

Parámetros

Parámetros Descripción
node Obligatorio. Objeto Node. Especifica el nodo con el que se debe comparar el nodo actual.

Detalles técnicos

Versión DOM: Core Level 3 Node Object
Valor de retorno:

Números que representan la posición relativa de los nodos. Los valores posibles son:

  • 1 - No hay relación, los dos nodos no pertenecen al mismo documento.
  • 2 - El nodo especificado se encuentra antes del nodo actual.
  • 4 - El nodo especificado sigue al nodo actual.
  • 8 - El nodo especificado contiene al nodo actual.
  • 16 - El nodo especificado se encuentra dentro del nodo actual.
  • 32 - El nodo especificado y el nodo actual no tienen un contenedor de nodo común, o los dos nodos son diferentes atributos del mismo nodo.

Nota:El valor de retorno también puede ser una combinación de valores. Por ejemplo, el valor de retorno 20 indica que el nodo especificado se encuentra dentro del nodo actual (16) y sigue al nodo actual (4).

Ejemplo

El siguiente código cargará "books.xml" en xmlDoc y comparará la posición de dos nodos en la estructura de nivel DOM (el primer y tercer elemento <book>):

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

Inténtalo tú mismo

La mayoría de los navegadores consideran los espacios en blanco o las nuevas líneas como nodos de texto, IE 9 y versiones anteriores no lo hacen. Por lo tanto, en el ejemplo anterior, la mayoría de los navegadores devolverán 4, mientras que IE 9 y versiones anteriores devolverán 2.

Compatibilidad del navegador

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Compatibilidad Compatibilidad Compatibilidad Compatibilidad Compatibilidad

Todos los navegadores principales admiten el método compareDocumentPosition().

Nota:Internet Explorer 9 y versiones anteriores no admiten este método.