files/en-us/web/api/range/setend/index.md
{{ApiRef("DOM")}}
The Range.setEnd() method sets the end position of a {{domxref("Range")}} to be located at the given offset into the specified node. Setting
the end point above (higher in the document) than the start point will result in a
collapsed range with the start and end points both set to the specified end position.
setEnd(endNode, endOffset)
endNode
endOffset
Range from the start of endNode.None ({{jsxref("undefined")}}).
InvalidNodeTypeError {{domxref("DOMException")}}
endNode is a doctype node; range endpoints cannot be located inside a doctype node.IndexSizeError {{domxref("DOMException")}}
endOffset is either greater than or equal to the length of the node or is less than zero.If the endNode is a {{domxref("Node")}} of type {{domxref("Text")}},
{{domxref("Comment")}}, or {{domxref("CDataSection")}}, then endOffset is
the number of characters from the start of endNode. For other
{{domxref("Node")}} types, endOffset is the number of child nodes between
the start of the endNode.
const range = document.createRange();
const endNode = document.getElementsByTagName("p").item(3);
const endOffset = endNode.childNodes.length;
range.setEnd(endNode, endOffset);
[!NOTE]
setEnd()is commonly used in conjunction with {{domxref("Range.setStart", "setStart()")}} to fully configure a range.
{{Specifications}}
{{Compat}}