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①

浏览器兼容性

另见