我有以下几行脚本来获取文档的选定区域。

    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/

10-11 02:19