yes, you can do it with textRange 

解决方案 »

  1.   

    谢谢你,karma(无为),我看了相关的文档,但还不是太明白,你能否说的详细些,最好给个例子。
      

  2.   

    try<input value="0123456789" id="txt1">
    <input type="button" value="show caret position" onclick="getCaretPos()"><br>
    <input value="4" id="txt2">
    <input type="button" value="select char" onclick="selectChar(txt2.value)">
    <script>
    function getCaretPos()
    {
      txt1.focus(); var currentRange=document.selection.createRange();
     var workRange=currentRange.duplicate(); txt1.select();
     var allRange=document.selection.createRange();
     var len=0; while(workRange.compareEndPoints("StartToStart",allRange)>0)
     {
      workRange.moveStart("character",-1);
      len++;
     } currentRange.select(); alert(len);
    }function selectChar(nPos)
    {
    var caretPos =  txt1.createTextRange();

    caretPos.move("character",nPos);
    caretPos.expand("character");
    caretPos.select();
    txt1.focus();
    }
    </script>