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 Juli 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)-
otherNodegeht 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)-
otherNodefolgt 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)-
otherNodeist ein Vorfahr des Knotens. Node.DOCUMENT_POSITION_CONTAINED_BY(16)-
otherNodeist 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> # ref-for-dom-node-comparedocumentposition①> |
Browser-Kompatibilität
Loading…