私のプロジェクトでは、優れた便利なjQuery TextRangeプラグインを使用しています。テキストエリアの上部にハイライト div があり、ユーザーが編集していた実際の要素を知る必要があります。よりよく理解するために、以下に多くの例を使用します。
私のプロジェクトでは、テキストエリアにこのテキストがある場合:
Text that doesn't matter #this_matter and #this_too
ハイライト div に次のようなものがあります。
"Text that doesn't matter <b>#this_matter</b> and #this_too</b>"
すべて大丈夫ですが...
私が編集している「ハッシュタグ」が何であるかを知る必要があります。ですから、位置を使用してこれを修正すると思いますが、ご覧のとおり、いくつか質問があります。私のテキストエリアでは、次を使用してカーソル位置を取得します。
input = $('#post-input')
var cursorPosition = input.textrange('get','position')
この情報を使用して、編集中のハッシュタグを知る必要があります。|
がテキストエリア内のカーソル位置のシンボルであると仮定すると、次のようになります。
"Text that doesn't matter #this_matter and #this|_too"
<b>#this_too</b>
これは実際のハッシュタグであるため、要素を返す必要があります。もう一つの例:
"Text that doesn't matter #|this_matter and #this_too"
返さなければなりません<b>#this_matter</b>
。
結局のところ、カーソル位置情報を含む正しい要素を返すにはどうすればよいですか?