获取所选文本的父元素

2023-11-24

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

<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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取所选文本的父元素 的相关文章