一个contenteditable='true'的div,内部有一些内容,外部有一个按钮,点击按钮的时候让光标在div的最后面

html结构如下:

<div id='somediv' contenteditable='true'>
    <p>这里有一段文字</p>
    aaaaaaaa //有一些纯文本
</div>
<button id='btn'>点击</button>

js如下:

let d=document.getElementById('somediv');
let btn=document.getElementById('btn');
btn.onclick=function(){
    d.focus();
}

focus之后,光标在行div的最开头,怎么让光标到最后面

阅读 3.8k
2 个回答

尝试以下方法


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
    <div id='somediv' contenteditable='true'>
        <p>这里有一段文字</p>
    </div>
    <button id='btn'>点击</button>
<script>
    var d=document.getElementById('somediv');
    var btn=document.getElementById('btn');
    btn.onclick=function(){
        d.focus();
        var range = window.getSelection();//创建range
        range.selectAllChildren(d);//range 选择d下所有子内容
        range.collapseToEnd();//光标移至最后
    }
</script>
</body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题