web-dev-qa-db-ja.com

テキスト領域を含むselectionStart-End

私はこの厄介な問題を抱えています、選択したテキストの開始インデックスと終了インデックスをtextareaで取得できないようです。

$('#myarea').selectionStart; // return undefined

私は何か間違ったことをしましたか?

32
Dennis

試してください:

$('#myarea')[0].selectionStart;

どうして? jQueryセレクターは、実際のDOM要素ではなく、ラップされたjQueryコレクションを返します。 jQueryは、実際のDOM要素を配列としてアクセスできるようにするため、最初に一致した要素(この場合は、IDであるため、唯一の要素)を使用する場合は、上記のようにします。

79

JQueryバージョン1.6以降、 。prop() メソッドを使用できます。

取得する:

// always start at 0

var start = $('#myarea').prop('selectionStart');
var end = $('#myarea').prop('selectionEnd');

セットする:

$('#myarea').prop('selectionStart', 10);
$('#myarea').prop('selectionEnd', 15);

// or short hand by

$('#myarea').prop({
    'selectionStart': 10,
    'selectionEnd': 15
});
12
Foo

テキストの選択を管理するために、 fieldSelectionプラグイン を強くお勧めします

2
CMS

使用できる別のプラグインで、IEで改行を正しく処理できることを私が認識している唯一のプラグインは、私自身の Rangy Inputs プラグインです。

0
Tim Down