-1

私は持っていvar test = $(this).attr('id');ます。test を var として宣言しましたが、取得する理由がわかりません

TypeError: テストが定義されていません。

このエラーが表示されるのはなぜですか?

4

1 に答える 1

1

あなたの変数 はtest、(おそらくあなたの) がundefined何であれ、属性を持っていないためです。そのため、存在しない属性の値を要求すると、が返され、 の値として割り当てられます。の文脈上の意味を混同している可能性が非常に高いです。thiswindowidundefinedtestthis

以下thisでは、コールバック関数だけでなく、グローバル スコープから呼び出しています。それらの参照の違いに注意してください。がどこthisで呼び出されるか、および周囲の関数がどのようthisに呼び出されるかによって、意味が大きく異なります。

var outerTest = $(this).width(); // this is the window

$("img").on("click", function () {
    var innerTest = $(this).attr("id"); // this is the image
});

参照: thisMozilla Developer Network

于 2013-04-03T13:22:29.410 に答える