我有var test = $(this).attr('id');
。我已将 test 声明为 var 但我不明白为什么我会得到
类型错误:测试未定义。
为什么会出现这个错误?
您的变量 ,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
});