0

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

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

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

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

3 回答 3

3

您需要停止事件的传播,以便只有单击的元素会引发此事件,而不是其所有容器

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

这可能更合适:

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

jsFiddle 演示

于 2013-09-24T14:43:00.087 回答
1

尝试这个

$('*').on('click', function (e) {
    if (e.target == this) {
        console.log($(this).text());
    }
});
于 2013-09-24T14:43:22.500 回答
1

您点击了body标签,因为您已包含*

尝试

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

内部HTML

事件.目标

于 2013-09-24T14:43:35.657 回答