Range: comparePoint() 方法

Baseline 已廣泛支援

此功能已成熟,可跨多種裝置和瀏覽器版本工作。它自 ⁨2018 年 4 月⁩ 起已在所有瀏覽器中可用。

comparePoint() 方法是 Range 介面的一個方法,用於確定指定的點是位於 Range 的開始之前、之內還是結束之後。該點由一個參照節點和一個在該節點內的偏移量來指定。

語法

js
comparePoint(referenceNode, offset)

引數

referenceNode

offset 相對於的 Node

offset

一個大於或等於零的整數,描述要檢查的點在 referenceNode 中的位置。如果 referenceNodeTextCommentCDATASection 型別的 Node,則 offset 是從 referenceNode 開始的字元數。對於其他 Node 型別,offset 是從 referenceNode 開始的子節點數。

返回值

一個數字。

  • 如果由 referenceNodeoffset 指定的點在此 Range 的開始之前,則返回 -1
  • 如果由 referenceNodeoffset 指定的點在此 Range 之內(包括範圍的開始和結束點),則返回 0
  • 如果由 referenceNodeoffset 指定的點在此 Range 的結束之後,則返回 1

示例

js
const text = new Text("0123456789");

const thisRange = new Range();
thisRange.setStart(text, 1);
thisRange.setEnd(text, 6);

thisRange.comparePoint(text, 3); // 0
thisRange.comparePoint(text, 0); // -1
thisRange.comparePoint(text, 6); // 0
thisRange.comparePoint(text, 7); // 1

規範

規範
DOM
# ref-for-dom-range-comparepoint①

瀏覽器相容性

另見