我有以下几行脚本来获取文档的选定区域。
sel = window.getSelection();
console.log(sel);
我在控制台中得到的结果如下图所示。
我的问题是
是否可以检查具有特定类/标识的元素内部或外部的选定文本?
最佳答案
您可以使用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展示了这个想法
关于javascript - 检查类(class)内部或外部的选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26943147/