editor.getSelectionElement()
現在の選択範囲を含む要素を返します。何が選択されているかによって、選択されたコントロール、キャレットがある表のセル、または強調表示された範囲を囲む要素のいずれかになります。「ユーザーは今どこにいるのか」を知りたいとき、たとえばセルの中にいる場合だけ表の操作を有効にしたいときに使います。
構文
editor.getSelectionElement()
パラメーター
なし。
戻り値
選択範囲を囲む要素。選択範囲に意味のある単一のコンテナーがない場合(たとえば、アンカーのない空の選択範囲)は null。
動作に関する注意
- 選択されたコントロールが優先されます。コントロール(画像など)が選択されている場合は、それがそのまま返されます。getSelectedControl() で得られるのと同じ要素です。
- 表のセル内のキャレットでは、そのセルが返されます。選択範囲が
TDまたはTHの中で折りたたまれている場合は、そのセルが返されます。セルを意識した操作を有効にするのに便利です。 - 範囲では、それを囲む要素が返されます。強調表示された範囲の場合、
getSelectionElement()は選択範囲の両端を含む要素までさかのぼります。
使用例
キャレットが表のセルの中にあるかどうかを調べます。
var editor1 = new RichTextEditor("#div_editor1");
var el = editor1.getSelectionElement();
var inCell = el && (el.closest("td") || el.closest("th"));現在の選択範囲にもっとも近いリンクを読み取ります。
var el = editor1.getSelectionElement();
var link = el ? el.closest("a[href]") : null;
if (link) console.log("Editing link:", link.href);関連項目
- editor.getSelectedControl()— 選択されたコントロールだけ。ない場合は null。
- editor.getSelectedText()— 選択範囲のプレーンテキスト。
- editor.getSelection()— 基になる選択範囲のオブジェクト。