内部でスタイリングを提供するために、いくつかのネストされたスパンを持つ contenteditable 要素があります。elemebt の特定のオフセットにある css クラスを調べる必要があります。たとえば、次のようなものがあります。
<div contenteditable>
<span class"nothing"> </span>
<span class="outer">my <span class="other">name</span> is </span><span class="name">Andrew</span>
</div>
画面上のテキストは次のようになります (適切なスタイルを使用)。
my name is Andrew
ここで、contenteditable 領域がさらに大きくなり、多くの入れ子になった span 要素があると想像してください。テキストへのオフセットが与えられた場合、それを含む css クラスを計算できる必要があります。
たとえば、n
ofであるオフセット 4 で CSS スタイルが必要だとしname
ます。結果は次のようになると思います。
outer other
同等の解決策は、オフセットが与えられた場合 (たとえば4
)、その場所をラップしている html 要素を計算できることです (この場合、次のようになります:
<span class="other">name</span>
私はjqueryを使用していますが、他のライブラリは使用していません。これを簡単に計算するにはどうすればよいですか?
編集:以前はテキストエリアを使用していましたが、機能しません。contenteditable div 要素を使用する必要があります。