1

変数の値を取得しようとしていますが、出力すると値の$target[オブジェクト] [オブジェクト] を取得し続けます。私は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.idjquery オブジェクトになっているからです。$()その周りは必要ありません:

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

それ$targetはオブジェクトだからです。文字列連結 (+オペランドの 1 つが文字列である演算子) を使用すると、オブジェクトが変換され"[object] [Object]"て出力されます。クリックした要素のIDを探しているだけの場合は、次を使用できます。

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

がオブジェクトである理由を理解するには、 に文字列 (つまり の値)$targetを渡したことに注意してください。次に、その引数を取り、jQuery オブジェクトを返します。event.target.id$()$()

参照: http://api.jquery.com/jQuery/

于 2013-09-15T20:26:16.373 に答える