Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Node : méthode compareDocumentPosition()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨juillet 2015⁩.

La méthode compareDocumentPosition() de l'interface Node rapporte la position de son nœud d'argument par rapport au nœud sur lequel elle est appelée.

Syntaxe

js
compareDocumentPosition(otherNode)

Paramètres

otherNode

Le nœud (Node) pour lequel la position doit être signalée, par rapport au nœud.

Valeur de retour

Une valeur entière représentant la position de otherNode par rapport à node comme un masquage combinant les propriétés constantes suivantes de l'interface Node :

Node.DOCUMENT_POSITION_DISCONNECTED (1)

Les deux nœuds sont dans différents documents ou différents arbres dans le même document.

Node.DOCUMENT_POSITION_PRECEDING (2)

otherNode précède le nœud soit dans un parcours en profondeur préfixé d'un arbre contenant les deux nœuds (par exemple en tant qu'ancêtre, nœud frère précédent, descendant d'un frère précédent ou frère précédent d'un ancêtre), soit — s'ils sont déconnectés — selon un ordre arbitraire mais cohérent.

Node.DOCUMENT_POSITION_FOLLOWING (4)

otherNode suit le nœud soit dans un parcours en profondeur préfixé d'un arbre contenant les deux nœuds (par exemple en tant que descendant, nœud frère suivant, descendant d'un frère suivant ou frère suivant d'un ancêtre), soit — s'ils sont déconnectés — selon un ordre arbitraire mais cohérent.

Node.DOCUMENT_POSITION_CONTAINS (8)

otherNode est un ancêtre du nœud.

Node.DOCUMENT_POSITION_CONTAINED_BY (16)

otherNode est un descendant du nœud.

Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC (32)

Le résultat dépend d'un comportement arbitraire ou spécifique à l'implémentation et n'est pas garanti d'être portable.

Zéro ou plusieurs bits peuvent être activés, en fonction des scénarios qui s'appliquent. Par exemple, si otherNode est situé plus haut dans le document et contient le noeud sur lequel compareDocumentPosition() a été appelé, alors les bits DOCUMENT_POSITION_CONTAINS et DOCUMENT_POSITION_PRECEDING seront tous deux positionnés, produisant une valeur de 10 (0x0A).

Exemple

js
const head = document.head;
const body = document.body;

if (head.compareDocumentPosition(body) & Node.DOCUMENT_POSITION_FOLLOWING) {
  console.log("Document bien formé");
} else {
  console.error("<head> n'est pas avant <body>");
}

Note : Parce que le résultat renvoyé par compareDocumentPosition est un masque de bits, des opérateurs binaires doivent être utilisés pour des résultats significatifs.

Spécifications

Specification
DOM
# ref-for-dom-node-comparedocumentposition①

Compatibilité des navigateurs

Voir aussi