Node: compareDocumentPosition()-Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die compareDocumentPosition()
-Methode der Node
-Schnittstelle
gibt die Position des Argumentknotens relativ zu dem Knoten zurück, auf dem sie aufgerufen wird.
Syntax
compareDocumentPosition(otherNode)
Parameter
Rückgabewert
Ein ganzzahliger Wert, der die Position von otherNode
relativ zu node
darstellt
als Bitmaske in Kombination mit den
folgenden Konstanten-Eigenschaften von Node
:
Node.DOCUMENT_POSITION_DISCONNECTED
(1
)-
Beide Knoten befinden sich in verschiedenen Dokumenten oder in unterschiedlichen Bäumen im selben Dokument.
Node.DOCUMENT_POSITION_PRECEDING
(2
)-
otherNode
geht dem Knoten voraus in entweder einer Pre-Order-Tiefensuche eines die beiden enthaltenden Baums (z.B. als Vorfahr oder vorheriges Geschwister oder ein Nachfahre eines vorherigen Geschwisters oder vorheriges Geschwister eines Vorfahren) oder (wenn sie nicht verbunden sind) in einer beliebigen, aber konsistenten Anordnung. Node.DOCUMENT_POSITION_FOLLOWING
(4
)-
otherNode
folgt dem Knoten in entweder einer Pre-Order-Tiefensuche eines die beiden enthaltenden Baums (z.B. als Nachfahre oder folgendes Geschwister oder ein Nachfahre eines folgenden Geschwisters oder folgendes Geschwister eines Vorfahren) oder (wenn sie nicht verbunden sind) in einer beliebigen, aber konsistenten Anordnung. Node.DOCUMENT_POSITION_CONTAINS
(8
)-
otherNode
ist ein Vorfahr des Knotens. Node.DOCUMENT_POSITION_CONTAINED_BY
(16
)-
otherNode
ist ein Nachfahre des Knotens. Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
(32
)-
Das Ergebnis hängt von einem willkürlichen und/oder Implementierung-spezifischen Verhalten ab und ist nicht garantiert portabel.
Abhängig von den zutreffenden Szenarien können null oder mehr Bits gesetzt werden. Zum Beispiel, wenn
otherNode
früher im Dokument positioniert ist und
den Knoten enthält, auf dem compareDocumentPosition()
aufgerufen wurde,
dann würden sowohl die DOCUMENT_POSITION_CONTAINS
- als auch die
DOCUMENT_POSITION_PRECEDING
-Bits gesetzt sein, was einen Wert von 10
(0x0A
) ergibt.
Beispiel
const head = document.head;
const body = document.body;
if (head.compareDocumentPosition(body) & Node.DOCUMENT_POSITION_FOLLOWING) {
console.log("Well-formed document");
} else {
console.error("<head> is not before <body>");
}
Hinweis: Da das Ergebnis, das von compareDocumentPosition()
zurückgegeben wird, eine Bitmaske ist,
muss der Bitweise UND-Operator
für sinnvolle Ergebnisse verwendet werden.
Spezifikationen
Specification |
---|
DOM Standard # ref-for-dom-node-comparedocumentposition① |
Browser-Kompatibilität
BCD tables only load in the browser