【问题标题】:jquery "this" scope as selectorjquery“this”范围作为选择器
【发布时间】:2018-09-05 02:09:07
【问题描述】:

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

解决办法在这里:

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


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

});

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

$(this).click(function(){


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

});

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

【问题讨论】:

  • this === window 在您的第二个示例中。
  • 好吧,this 在你知道将被调用的函数中是有意义的,这样this 具有有用的价值。
  • 什么是this(?).. 这就是你需要阅读的内容,你会明白所有
  • 同时知道什么是this(?)。将console.log(this) 放在第二个代码之前。

标签: javascript jquery scope this


【解决方案1】:

这可能对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>,并且只针对它,而在点击事件内部执行代码。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 2012-01-18
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多