首页 > 解决方案 > 在 HTML 中选择范围的结尾?

问题描述

假设我有一个包含 7 个子文本<div>abcdefg</div>且范围为 [1]-[4]的元素bcd。如何在d不更改范围开始的情况下将用户光标放在此范围的末尾(紧随其后)?

我正在寻找类似的东西window.getSelection().addRange(range.end)

标签: javascripthtmlrangeelement

解决方案


我可能误解了你的问题。据我了解,您想在当前范围结束后立即扩展范围。

为此,您可以使用以下内容:

const node = window.getSelection().focusNode;

const range = new Range();
range.setStart(node, 1);
range.setEnd(node, 4);

// Modify the range to extend the end (I've added +1 to go beyond it)
range.setEnd(node, range.endOffset + 1);

// Apply the range
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);

这也可能有帮助:Selection.extend()

我希望这回答了你的问题。如果您需要进一步说明,请告诉我。


推荐阅读