我有var test = $(this).attr('id');
。我已将test测试为var但我不明白
为什么我要
TypeError:测试未定义。
为什么会出现此错误?
答案 0 :(得分:1)
您的变量test
为undefined
,因为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
});