javascript/jQuery:获取所选文本';s容器

javascript/jQuery:获取所选文本';s容器,javascript,jquery,Javascript,Jquery,如何获取用户所选文本的容器id(例如,p或div的id) 我想让选定的文本列表,用户选择一个文本,然后点击按钮添加到列表中。 当用户单击列表中的文本时,我想突出显示原始选择的位置。 我需要容器的id,因为所选文本可能不是唯一的,并且在文档中出现多次 我得到如下所示的所选文本。getSelection().anchorNode提供了开始选择的DOM元素 window.getSelection().focusNode-提供选择结束的DOM元素 引用:window.getSelection().anc

如何获取用户所选文本的容器id(例如,p或div的id)

我想让选定的文本列表,用户选择一个文本,然后点击按钮添加到列表中。 当用户单击列表中的文本时,我想突出显示原始选择的位置。 我需要容器的id,因为所选文本可能不是唯一的,并且在文档中出现多次

我得到如下所示的所选文本。getSelection().anchorNode提供了开始选择的DOM元素
window.getSelection().focusNode
-提供选择结束的DOM元素

引用:

window.getSelection().anchorNode
-提供选择开始的DOM元素
window.getSelection().focusNode
-提供选择结束的DOM元素


参考资料:

这里有一种跨浏览器实现的方法(未经测试)

(在5秒钟前选择一些文本,然后在控制台中查看)

链接


以下是一种跨浏览器实现的方法(未经测试)

(在5秒钟前选择一些文本,然后在控制台中查看)

链接


在Chrome中(我假设所有基于WebKit的浏览器也是如此):anchorNode提供了开始选择的容器中的所有文本。focusNode提供容器中选择结束的所有文本。我如何获得选择文本的dom元素数组?anchorNode和focusNode只返回第一个和最后一个。中间的那些呢?在Chrome中(我假设所有基于WebKit的浏览器也是如此):anchorNode提供了开始选择的容器中的所有文本。focusNode提供容器中选择结束的所有文本。我如何获得选择文本的dom元素数组?anchorNode和focusNode只返回第一个和最后一个。中间的呢?
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;
    }
};