2013-09-15 1 views
1

Я пытаюсь получить значение переменной $target, но когда я его печатаю, я продолжаю получать [object] [Object] для значения. Я новичок в jQuery, так что это, вероятно, очень простая проблема, которую мне не хватает.Продолжайте получать [object] [Object] из переменной

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

Почему вы называете '$()'? – SLaks

+0

, вы можете прочитать на javascript, если вы не понимаете, что вы сделали неправильно. – kennypu

ответ

1

это потому, что вы превращаете event.target.id в объект jquery. Вам не нужно $() вокруг него:

var target = event.target.id; 
$("#log").html("clicked: " + target); 
1

Удалить JQuery wrapp $(), в противном случае вы получите JQuery "объект"

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

Вариант 2: использование JQuery обертка, но получить идентификатор с .attr('id')

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

Это потому, что $target является объектом. При использовании конкатенации строк (оператор + с одним из операндов является строкой) объект переводится в "[object] [Object]", следовательно, ваш выход. Если вы просто ищете идентификатор элемента, который вы нажали вы можете использовать:

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

Чтобы понять, почему $target является объектом обратите внимание, что вы прошли строку (т.е. значение event.target.id) в $(). $() затем принимает этот аргумент и возвращает объект jQuery.

См: http://api.jquery.com/jQuery/

Смежные вопросы