获取输入内的单击字符位置(不是坐标)



我试图在输入中获得单击的字符位置。这意味着如果我的输入具有文本abcdef,并且我在bc之间单击,我的单击侦听器(在我的输入元素内)将返回2

$(document).on("click", function() {
      
        var $txt = $("#txt");
        var caretPos = $txt[0].selectionStart;
        var textAreaTxt = $txt.val();
       console.log(caretPos);
        console.log(textAreaTxt[caretPos]);
    });
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  
</head>
<body>
<input id="txt" rows="15" cols="70"/>
</body>
</html>

像这样?这实际上是建立在quik_silv的基础上的你得到光标的索引值然后得到文本字段的值通过索引检索值这是一个按钮点击,但很容易改变

$("#btn").on('click', function() {
    var $txt = $("#txt");
    var caretPos = $txt[0].selectionStart;
    var textAreaTxt = $txt.val();
    console.log(caretPos);
    console.log(textAreaTxt[caretPos]);
});
//Try this
<input id="text" type="text" value="EXAMPLE" size="20" />
<script type="text/javascript">
    document.getElementById('text').addEventListener('click', function() {
    var length = this.value.length;
    var x =length-(length-this.selectionStart)
alert(x);
},
false);

最新更新