javascript - jquery "this"范围作为选择器

标签 javascript jquery scope this

我正在编写一个简单的程序用于学习目的。它包含在日历上。每个标签都有一个 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/

相关文章:

javascript - 将 forEach 循环附加到页面时遇到问题

javascript - 示例 Todos 应用程序中定义的全局全大写变量是什么?

javascript - 如何让 Featherlight Image Gallery 发挥作用?

javascript - .append() 到 JS 使用 .on ('click' 创建的元素)

javascript - 如何将参数传递给使用 setTimeout 调用的函数?

r - 限制变量范围

javascript - 如何在Electron上的React组件中导入CSS文件

javascript - 需要帮助修复具有相对/绝对路径的 webpack.config

javascript - Kendo Observable 在触发更改事件后不更新

python - 为什么不用global关键字就不会报错