我正在编写一个简单的程序用于学习目的。它包含在日历上。每个标签都有一个 id。当我点击这个单元格时,我获得了 id
解决方案在这里:
$("td").click(function(){
alert($(this).attr("id"));
});
效果很好。但是,在此之前,我尝试过:
$(this).click(function(){
alert($(this).attr("id"));
});
最后一个不起作用(返回未定义)。我想这与“this”范围有关,但如果有人能解释我,我将非常感激,因为我无法理解为什么第二个选项不起作用或这个范围是如何工作的。
最佳答案
这可能有帮助jQuery Selectors 。在您的代码中
$(this).click(function(){
alert($(this).attr("id"));
});
$(this)
是 the current HTML element ,这意味着根据代码的范围,$(this)
是一个不同的 HTML 元素。
在有效的代码中:
$("td").click(function(){
alert($(this).attr("id"));
});
代码范围是通过点击 <td></td>
触发的点击事件“内”元素,所以$(this)
指的是特定的<td></td>
并且只有它,同时执行点击事件里面的代码。
希望对您有帮助。
关于javascript - jquery "this"范围作为选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49499792/