如何获取用户所选文本的容器ID(例如,p或div的id)?
我想制作所选文本的列表,用户选择文本然后单击按钮添加到列表中。 当用户点击列表中的文本时,我想突出显示原始选择的位置。 我需要容器的id,因为所选文本可能不是唯一的,并且在文档中多次出现。
答案 0 :(得分:2)
window.getSelection().anchorNode
- 为您提供选择开始的DOM元素
window.getSelection().focusNode
- 为您提供选择结束的DOM元素
答案 1 :(得分:2)
以下是跨浏览器(未经测试)实现的一种方式
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秒前选择一些文字,然后在控制台中查看)