我有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
});