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

瀏覽器相容性

另見