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
compareDocumentPosition(otherNode)
Paramètres
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)-
otherNodepré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)-
otherNodesuit 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)-
otherNodeest un ancêtre du nœud. Node.DOCUMENT_POSITION_CONTAINED_BY(16)-
otherNodeest 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
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
Chargement…