javascript - 如何获取光标下的文字?

标签 javascript jquery jquery-selectors dhtml

我正在尝试使用 jquery 制作用户脚本。我希望它从光标下的元素获取光标下的文本。问题是我编写的脚本使用 jQuery 的 .text() ,如果元素有子元素,它会返回连接的子元素。知道如何获取我正在单击的容器的文本吗?

(我在 ebay.com 上尝试过,因为该网站很复杂)

// ==UserScript==
// @name           Selector
// @namespace      http://userstyles.org
// @description    none
// @include        http://*.*
// @require        http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// ==/UserScript==

var $;

// Add jQuery
(function(){
    if (typeof unsafeWindow.jQuery == 'undefined') {
        var GM_Head = document.getElementsByTagName('head')[0] || document.documentElement,
            GM_JQ = document.createElement('script');

        GM_JQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
        GM_JQ.type = 'text/javascript';
        GM_JQ.async = true;

        GM_Head.insertBefore(GM_JQ, GM_Head.firstChild);
    }
    GM_wait();
})();

// Check if jQuery's loaded
function GM_wait() {
    if (typeof unsafeWindow.jQuery == 'undefined') {
        window.setTimeout(GM_wait, 100);
    } else {
        $ = unsafeWindow.jQuery.noConflict(true);
        letsJQuery();
    }
}

function letsJQuery() {
    //alert("Loaded jQuery" + $().jquery); // check jQuery version

    $("*:not(html, head, body)").hover( function () {
             $(this).css("border", "1px dotted blue");
    }, 

    function () {                
            $(this).css("border", "none");
    }).click( function () {
           var s = $(this).text();
           if (s) alert(s);
           return false;
    });
}

最佳答案

您可以将点击事件处理程序绑定(bind)到文档并检查事件目标:

$(document).bind('click', function(e) {
    console.log('text: ', e.target.value || e.target.textContent || e.target.text);
});

更新

$(document).bind('click', function(e) {
    $(e.target).contents().each(function(index, elem) {
        if( elem.nodeType === 3 && $.trim(elem.nodeValue).length ) {
            console.log($.trim(elem.nodeValue));
            return false;
        }
    });
});

关于javascript - 如何获取光标下的文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4787090/

相关文章:

javascript - 按钮背景的挖空文本

javascript - 在slideToggle之前让div指定高度,之后适应内容

javascript - 将更改和其他操作绑定(bind)到 div 内的多个 ajax 加载元素

jQuery 按类选择 VS 按属性选择

javascript - JavaScript 中的正则表达式 : Content Between Two Tags

javascript - 图像 map 悬停在区域上,ImageMapster jQuery 不起作用

javascript - 如何使用 CSS 缩放基于空白的背景图像

jquery - 无法在 JQuery 对象上调用扩展方法

javascript - jQuery 单一选择器与 .find()

jQuery .nothas?