Javascript / Jquery - 如何获取用户使用光标选择的元素?

时间:2010-08-10 06:33:38

标签: javascript jquery

如果用户使用光标突出显示<h1>内的文本,我该如何获取该<h1>个对象?或者,如果他们在<li>中选择了文字,我该如何获得<li>

4 个答案:

答案 0 :(得分:3)

您可以选择Document as,

dd = window.getSelection();
desiredElement = dd.focusNode.parentNode; // h1 or li or other 
desiredTag = desiredElement.tagName; // its tagname

快乐编码。

答案 1 :(得分:1)

您需要处理window.getSelection()

答案 2 :(得分:0)

$('h1').click(function(){
   alert(this); // `this` is the <h1> object clicked.
});

在你的问题中我错过了一些棘手的部分吗?

答案 3 :(得分:0)

您可以在所有现代主流浏览器中获取选择的父元素,如下所示。请记住,Firefox目前默认允许多种选择;此代码仅使用第一个。

另见我的回答:How can I get the DOM element which contains the current selection?

function getSelectionContainerElement() {
    var sel, el;
    if (window.getSelection) {
        sel = window.getSelection();
        if (sel.getRangeAt) {
            if (sel.rangeCount) {
                el = sel.getRangeAt(0).commonAncestorContainer;
                return (el.nodeType == 3) ? el.parentNode : el;
            }
        } else {
            // This happens in old versions of Safari. A workaround
            // exists, if you need it
        }
    } else if (document.selection && document.selection.createRange) {
        return document.selection.createRange().parentElement();
    }
}