-1

我有var test = $(this).attr('id');。我已将 test 声明为 var 但我不明白为什么我会得到

类型错误:测试未定义。

为什么会出现这个错误?

4

1 回答 1

1

您的变量 ,testundefined因为无论this是什么(也许是您的window)都没有id属性。因此,当您请求不存在属性的值时,undefined将返回并分配为 的值test。您很可能混淆了this.

下面我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 开发者网络

于 2013-04-03T13:22:29.410 回答