3

コンテンツの編集可能な div のカーソル位置を位置に設定するための jquery コードを次に示します。10

var range,selection; var contentEditableElement = $("div#editMe");
if(document.createRange)//Firefox, Chrome, Opera, Safari, IE 9+
{
 range = document.createRange();
 range.selectNodeContents(contentEditableElement);
 range.collapse(true);
 range.setStart(contentEditableElement,0); 
 range.setEnd(contentEditableElement,10);
 selection = window.getSelection();
 selection.removeAllRanges();
 selection.addRange(range);
}

しかし、これは機能していません。どうしたの 。??

4

1 に答える 1

2

これが実際の例です。div 内にテキストを入れるだけではうまくいかないようです。すべての文字を要素に入れる必要があります。また、range.setStart および range.setEnd で使用する dom オブジェクトを実際に取得するには、jquery オブジェクトで .get(0) を使用する必要があることに注意してください。

html:

<div id="editMe">
    <span>a</span><span>b</span><span>c</span><span>d</span><span>e</span><span>f</span><span>g</span><span>h</span><span>i</span><span>j</span><span>k</span><span>l</span><span>m</span><span>n</span>
</div>

<button onclick="do_select()">
    select characters
</button>

js:

function do_select()
{
    var element = $("div#editMe").get(0);
    var range = document.createRange();

    range.collapse(true);
    range.setStart(element,0); 
    range.setEnd(element,10);

    var selection = window.getSelection();
    selection.removeAllRanges();
    selection.addRange(range);
}

http://jsfiddle.net/y8pWs/

于 2013-07-31T21:16:50.470 に答える