一尘不染

JavaScript '$(this)'和'this'有什么区别?

javascript

我目前正在研究jQuery

对于以下两个示例:

$("#orderedlist").find("li").each(function (i) {
    $(this).append(" BAM! " + i);
});
$("#reset").click(function () {
    $("form").each(function () {
        this.reset();
    });
});

请注意,在第一个示例中,我们用于$(this)在每个li元素内附加一些文本。在第二个示例中,我们this在重置表单时直接使用。

$(this)似乎比经常使用this

我的猜测是,在第一个示例中,$()是将每个li元素转换为可以理解append()功能的jQuery对象,而在第二个示例中,reset()可以直接在表单上调用它。

基本上,我们需要$()特殊的仅jQuery功能。

这个对吗?


阅读 327

收藏
2020-04-23

共1个答案

一尘不染

是的,只有$()在使用jQuery 时才需要。如果您想要jQuery的帮助来做DOM事情,请记住这一点。

$(this)[0] === this

基本上,每次您返回一组元素时,jQuery都会将其转换为jQuery对象。如果您知道只有一个结果,它将在第一个元素中。

$("#myDiv")[0] === document.getElementById("myDiv");

等等…

2020-04-23