Range:setEnd() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Range.setEnd() 方法将一个 Range 的结束位置设置为指定节点中给定偏移量处。如果设置的结束点高于(在文档中更靠前)开始点,则会生成一个折叠的范围,开始点和结束点都设置为指定的结束位置。

语法

js
setEnd(endNode, endOffset)

参数

endNode

Range 应该结束的 Node

endOffset

一个大于或等于零的整数,表示 Range 结束点在 endNode 开始处的偏移量。

返回值

无(undefined)。

异常

InvalidNodeTypeError DOMException

endNode 指定的节点是 doctype 节点;范围端点不能位于 doctype 节点内。

IndexSizeError DOMException

endOffset 指定的值大于或等于节点的长度,或者小于零。

用法说明

如果 endNodeTextCommentCDataSection 类型的 Node,则 endOffset 是从 endNode 开始处的字符数。对于其他 Node 类型,endOffsetendNode 开始处之间的子节点数。

示例

js
const range = document.createRange();
const endNode = document.getElementsByTagName("p").item(3);
const endOffset = endNode.childNodes.length;
range.setEnd(endNode, endOffset);

注意: setEnd() 通常与 setStart() 结合使用,以完整配置一个范围。

规范

规范
DOM
# dom-range-setend

浏览器兼容性

另见