jquery“this”作为选择器的范围

时间:2018-03-26 20:07:55

标签: javascript jquery scope this

我正在编写一个用于学习目的的简单程序。它包含在日历上。每个标签都有一个id。当我单击此单元格时,我获得了id

解决方案在这里:

$("td").click(function(){


    alert($(this).attr("id"));

});

工作正常。但是,在那之前,我试过这个:

$(this).click(function(){


    alert($(this).attr("id"));

});

最后一个,不起作用(返回undefined)。我想这与“这个”范围有关,但如果有人能解释我,我会非常感激,因为我不明白为什么第二个选项不起作用或者这个范围是如何工作的。

1 个答案:

答案 0 :(得分:1)

这可能有助jQuery Selectors。在你的代码中

$(this).click(function(){
    alert($(this).attr("id"));
});

$(this)the current HTML element,这意味着根据代码的范围,$(this)是不同的HTML元素。 在有效的代码中:

$("td").click(function(){
     alert($(this).attr("id"));
});

代码范围是&#34;在&#34;通过单击<td></td>元素触发点击事件,因此$(this)指的是特定的<td></td>,仅指向它,同时在点击事件中执行代码。

希望它对你有所帮助。