javascript - 获取选定文本的父元素

标签 javascript jquery text

是否可以获取页面中选中文本的父元素?例如:

<div class="someparent">

Selection of this text should refer to the 'someparent' class.

<span class="spanparent">If this is selected, the parent should be this span</span>

</div>

因为在获取选中文本的时候,一般是从窗口或者文档中获取(取决于浏览器)但是有没有可能获取到选中文本的父元素呢?

最佳答案

这是一个函数,可以让您获得包含所有主要浏览器中全部用户选择的最内层元素(选择多个范围时除外,这仅在 Firefox 中受支持。如果这很重要,我可以扩展示例也处理这种情况):

function getSelectionParentElement() {
    var parentEl = null, sel;
    if (window.getSelection) {
        sel = window.getSelection();
        if (sel.rangeCount) {
            parentEl = sel.getRangeAt(0).commonAncestorContainer;
            if (parentEl.nodeType != 1) {
                parentEl = parentEl.parentNode;
            }
        }
    } else if ( (sel = document.selection) && sel.type != "Control") {
        parentEl = sel.createRange().parentElement();
    }
    return parentEl;
}

关于javascript - 获取选定文本的父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7215479/

相关文章:

javascript - KineticJS afterFrame 不循环运行

javascript - 如何在 Javascript 中只允许输入数字,为什么我的代码不起作用?

haskell - 将字节字符串部分解码为文本

javascript - 使用 xpath 选择属性和内容?

javascript - 动态单选按钮表单 react

javascript - 如何文本扭曲 "bulge/fisheye"效果?

javascript - 如何获取多个选择框的值并将结果显示在文本框中?

Javascript 事件多次调用

c++ - 用C++高效地读取部分文本

C++:文本文件的扩展名?