使用this和jQuery获取任何html元素

时间:2013-09-24 14:40:18

标签: jquery

以下代码显示了点击的任何p元素的文字:

$("p").click(function(){
    console.log($(this).text());
});

但我想概括一下并获取点击的任何html元素的文字,而不仅仅是p。我做了以下操作,但这会返回页面上所有html元素的文本:

$("*").click(function(){
    console.log($(this).text());
});

3 个答案:

答案 0 :(得分:3)

您需要停止event's propagation,因此只有点击的元素才会引发此事件,而不是所有容器

$("*").click(function(e){
    e.stopPropagation();
    console.log($(this).text());
});

这可能更合适:

$(document).on('click', '*', function(e){
    e.stopPropagation();
    console.log($(this).text());
});

jsFiddle Demo

答案 1 :(得分:1)

试试这个

$('*').on('click', function (e) {
    if (e.target == this) {
        console.log($(this).text());
    }
});

答案 2 :(得分:1)

您点击了body标记已包含*

尝试

$("*").click(function(e){
    console.log(e.target.innerHTML);
});

innerHTML

event.target