XML DOM compareDocumentPosition() method

Definition and usage

compareDocumentPosition() Compare the positions of two nodes in the DOM hierarchy (document).

Syntaxe

nodeObject.compareDocumentPosition(node)

Paramètres

Paramètres Description
node Obligatoire. Objet Node. Définit le nœud avec lequel le nœud actuel doit être comparé.

Détails techniques

Version DOM : Core Level 3 Node Object
Valeur de retour :

Les nombres représentent la position relative des deux nœuds. Les valeurs possibles de retour sont :

  • 1 - Aucune relation, les deux nœuds n'appartiennent pas au même document.
  • 2 - Le nœud spécifié est avant le nœud actuel.
  • 4 - Le nœud spécifié suit le nœud actuel.
  • 8 - Le nœud spécifié contient le nœud actuel.
  • 16 - Le nœud spécifié est contenu dans le nœud actuel.
  • 32 - Le nœud spécifié et le nœud actuel n'ont pas de conteneur commun ou les deux nœuds sont des attributs différents du même nœud.

Remarque :La valeur de retour peut également être une combinaison de valeurs. Par exemple, une valeur de retour de 20 indique que le nœud spécifié est contenu dans le nœud actuel (16) et suit le nœud actuel (4).

Exemple

Le code suivant charge "books.xml" dans xmlDoc et compare la position des deux nœuds (le premier et le troisième élément <book>) dans la hiérarchie 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);
}

Essayez-le vous-même

La plupart des navigateurs considèrent les espaces ou les nouvelles lignes comme des nœuds de texte, ce qui n'est pas le cas pour Internet Explorer 9 et les versions antérieures. Par conséquent, dans l'exemple ci-dessus, la plupart des navigateurs affichent 4, tandis que Internet Explorer 9 et les versions antérieures affichent 2.

Compatibilité des navigateurs

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Support Support Support Support Support

Tous les navigateurs populaires prennent en charge la méthode compareDocumentPosition().

Remarque :Internet Explorer 9 et versions antérieures ne prennent pas en charge cette méthode.