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