我有以下几行脚本来获取文档的选定区域。
sel = window.getSelection();
console.log(sel);
我已在控制台中获得结果,如下图所示。
我的问题是,
是否可以检查具有特定类/ ID的元素内部或外部的选定文本?
答案 0 :(得分:1)
您可以使用anchorNode(选择开始的节点)和focusNode(选择结束的节点)来尝试确定选择是否在所需元素中。
假设您感兴趣的元素是所选文本的直接父元素,您可以执行以下操作:
var sel = document.getSelection();
var startsInTarget = sel.anchorNode.parentElement.classList.contains("target");
var endsInTarget = sel.focusNode.parentElement.classList.contains("target");
if(startsInTarget && endsInTarget) {
//selection is within an element with class "target"
}
这是展示这个想法的jsfiddle