2

ユーザーが選択したテキストのコンテナーの ID (たとえば、p または div の ID) を取得するにはどうすればよいですか?

選択したテキストのリストを作成したいのですが、ユーザーはテキストを選択し、ボタンをクリックしてリストに追加します。ユーザーがリストからテキストをクリックすると、元の選択が行われた場所を強調表示したいと思います。選択したテキストが一意ではなく、ドキュメントに複数回表示される可能性があるため、コンテナーの ID が必要です。

ユーザーが選択したテキストから HTML を返す

4

2 に答える 2

2

window.getSelection().anchorNode- 選択が開始され window.getSelection().focusNodeた DOM 要素を提供します - 選択が終了した DOM 要素を提供します

参照: https://developer.mozilla.org/en-US/docs/Web/API/Selection?redirectlocale=en-US&redirectslug=DOM%2FSelection

于 2013-07-14T19:22:30.363 に答える
2

クロスブラウザーで実現できる1つの方法を次に示します(テストされていません)

var getSelectionContainer = function() { 

    if (document.selection){  // IE
        return document.selection.createRange().parentElement();
    }

    var select = window.getSelection();
    if (select.rangeCount > 0) {
       return select.getRangeAt(0).startContainer.parentNode;
    }
};

デモ

(5 秒前にいくつかのテキストを選択し、コンソールを調べます)

リンク

MDN window.getSelection

MDN selection.getRangeAt

MDN range.startContainer

MDN selection.rangeCount

于 2013-07-14T19:22:38.787 に答える