Range: compareBoundaryPoints() 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 compareBoundaryPoints() Methode der Range Schnittstelle vergleicht die Grenzpunkte des Range mit denen eines anderen Bereichs.
Syntax
compareBoundaryPoints(how, otherRange)
Parameter
how-
Eine Konstante, die die Vergleichsmethode beschreibt:
Range.END_TO_ENDvergleicht den End-Grenzpunkt diesesRangemit dem End-Grenzpunkt vonotherRange.Range.END_TO_STARTvergleicht den Start-Grenzpunkt diesesRangemit dem End-Grenzpunkt vonotherRange.Range.START_TO_ENDvergleicht den End-Grenzpunkt diesesRangemit dem Start-Grenzpunkt vonotherRange.Range.START_TO_STARTvergleicht den Start-Grenzpunkt diesesRangemit dem Start-Grenzpunkt vonotherRange.
otherRange-
Ein
Range, mit dem die Grenzpunkte des Bereichs verglichen werden.
Rückgabewert
Eine Zahl.
-1, wenn der angegebene Grenzpunkt diesesRangevor dem angegebenen Grenzpunkt vonotherRangeliegt.0, wenn der angegebene Grenzpunkt diesesRangederselbe ist wie der angegebene Grenzpunkt vonotherRange.1, wenn der angegebene Grenzpunkt diesesRangenach dem angegebenen Grenzpunkt vonotherRangeliegt.
Diese API ist konsistent mit der allgemeinen Konvention, dass bei Vergleichen von A mit B eine negative Zahl bedeutet, dass A vor B kommt und umgekehrt (siehe zum Beispiel Array.prototype.sort()). Die Bereiche werden in Richtung von this zu other verglichen, ähnlich wie String.prototype.localeCompare(). Jedoch werden die Grenzpunkte beim how Parameter in umgekehrter Reihenfolge angegeben: END_TO_START vergleicht den Start von this mit dem Ende von other.
Ausnahmen
NotSupportedErrorDOMException-
Wird ausgelöst, wenn der Wert des
howParameters ungültig ist.
Beispiele
Unten erstellen wir zwei Bereiche im selben Textknoten und vergleichen ihre verschiedenen Grenzpunkte.
const text = new Text("0123456789");
const thisRange = new Range();
thisRange.setStart(text, 1);
thisRange.setEnd(text, 6);
const otherRange = new Range();
otherRange.setStart(text, 1);
otherRange.setEnd(text, 4);
// The ranges look like this:
// thisRange start v---------v thisRange end
// 0 1 2 3 4 5 6 7 8 9
// otherRange start ^-----^ otherRange end
// this start is *same as* other start
thisRange.compareBoundaryPoints(Range.START_TO_START, otherRange); // 0
// this end is *after* other start
thisRange.compareBoundaryPoints(Range.START_TO_END, otherRange); // 1
// this start is *after* other end
thisRange.compareBoundaryPoints(Range.END_TO_START, otherRange); // -1
// this end is *after* other end
thisRange.compareBoundaryPoints(Range.END_TO_END, otherRange); // 1
Spezifikationen
| Specification |
|---|
| DOM> # dom-range-compareboundarypoints> |
Browser-Kompatibilität
Loading…