如何让div获得焦点,焦点位于文本的右侧?

时间:2017-12-15 09:35:05

标签: javascript html

如何让div获取focus,而focus位于文本的右侧? 我想要的是一旦你点击按钮,contenteditable' is焦点, and the焦点`的div就在文本的右侧 谢谢 :) 我已经尝试过解决系统建议的问题,但它有错误

  

无法执行' setStart' on' Range':参数1不是类型   '节点' ...

3 个答案:

答案 0 :(得分:0)

$(window).on('load', (e) => { 
        $("#test").focus();
        var tmpStr = $("#test").val();
        $("#test").val('');
        $("#test").val(tmpStr);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="test" value="Hello there.." type="test" style="font-size:30px;width:250px;">

答案 1 :(得分:-1)

使用css的方向属性:

方向:rtl; 文本对齐:右;

编写一个jquery代码snipet

function rtl(element)
        {
            if(element.setSelectionRange){
                element.setSelectionRange(0,0);
            }
        }

<input type="text" onkey="rtl(this);" />

我希望这能解决您的问题。这将显示光标在键输入上的轻微移动,但这是我知道解决此问题的唯一方法。

答案 2 :(得分:-1)

var el = document.getElementById('div');
if (el.innerText != '') {
    var textLength = el.lastChild.length;
    var range = document.createRange();
    var sel = window.getSelection();
    range.setStart(el.lastChild, textLength);
    range.collapse(true);
    sel.removeAllRanges();
    sel.addRange(range);
}
el.focus();