1

我正在尝试获取变量的值,$target但是当我打印它时,我不断获取 [object] [Object] 的值。我是 jQuery 的新手,所以这可能是我缺少的一个非常简单的问题。

$("body").click(function(event) {
            var $target = $(event.target.id);
        $("#log").html("clicked: " + $target);
        });
4

3 回答 3

1

删除 jQuery 包装$(),否则你会得到一个 jQuery“对象

$("body").click(function (event) {
    var target = event.target.id;
    $("#log").html("clicked: " + target);
});

选项 2: 使用 jQuery 包装器,但使用.attr('id')获取 id

$("body").click(function (event) {
    var $target = $(event.target);
    $("#log").html("clicked: " + $target.prop('id'));
});
于 2013-09-15T20:22:50.237 回答
1

那是因为你正在event.target.id变成一个 jquery 对象。你不需要$()它周围:

var target = event.target.id;
$("#log").html("clicked: " + target);
于 2013-09-15T20:23:00.627 回答
1

那是因为$target是一个对象。当使用字符串连接(+操作数之一为字符串的运算符)时,一个对象被转换为"[object] [Object]"您的输出。如果您只是在寻找您点击的元素的 id,您可以使用:

$("body").click(function(event) {
    $("#log").html("clicked: " + event.target.id);
});

要了解为什么$target是一个对象,请注意您将字符串(即 的值event.target.id)传递到$(). $()然后接受该参数并返回一个 jQuery 对象。

见:http ://api.jquery.com/jQuery/

于 2013-09-15T20:26:16.373 回答