首页 > 解决方案 > 在特定点创建范围

问题描述

我试图创建一个范围,该范围会导致文本中的特定点,但这对于 ChildNodes 来说非常困难,因为您无法准确到达文本中的一个点,而只能到达 ChildNode 的开头或结尾.
我有办法到达“te”和“st”之间的点(比如将光标放在“ |test st”之间)或者是否可以创建一个独立于子节点的范围?

这是我的代码:

function myFunction(el) {
    var textNode = el.childNodes[1];
    var range = document.createRange();
    range.selectNodeContents(el);
    range.setStart(textNode, 0);
    range.setEnd(textNode, 0);
    var sel = window.getSelection();
    sel.removeAllRanges();
    sel.addRange(range);
}
<!DOCTYPE html>
<html>
<body>

<div id="myText" contenteditable>test<br>test</div>

<button type="button" onclick='myFunction(document.getElementById("myText"))'>Go into Text</button>

</body>
</html>

感谢您的每一次帮助!

标签: javascripthtml

解决方案


推荐阅读