Jquery变量表示TypeError:test未定义

时间:2013-04-03 13:16:26

标签: jquery

我有var test = $(this).attr('id');。我已将test测试为var但我不明白 为什么我要

  

TypeError:测试未定义。

为什么会出现此错误?

1 个答案:

答案 0 :(得分: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
});

请参阅:this on the Mozilla Developer Network