Jquery - 何时使用"this"以及何时使用"$(this)"?

But*_*kus 13 jquery

可能重复:
jQuery $(this)vs this

"this"和"$(this)"有什么区别?

我怎么知道使用哪一个?

相关,我认为:

每个都有可选参数."i"与"this"(或"$(this)")有什么不同?

$('img').each(function(i) { ....code }
Run Code Online (Sandbox Code Playgroud)

$('img').each(function() { ....code }
Run Code Online (Sandbox Code Playgroud)

Jos*_*kle 13

this对象不会改变.它是该功能的所有者.在大多数情况下,它只是一个节点,你可以引用它的所有属性,如this.className.(把它想象成一个节点或者你得到的东西document.getElementById).它只是该功能的"拥有者".

因此,您只是将this对象传递给jQuery $().

结论:如果要对当前节点使用jQuery函数,请使用$(this).但是,如果你要访问的对象自己的属性(例如.name,className,.id),使用简单this.


use*_*899 5

这是针对javascript的javascript,$(this).你可以使用$(this)来表示jQuery的每个函数,而不是这个.

编辑:对于你的例子,我只是他所加的数字增加的数字(0是10月11日),$(这个)是你可以做的元素img:

$(this).on('click', function() { console.log(123); });
or
$('img').eq(i).on('click', function() { console.log(123); });
Run Code Online (Sandbox Code Playgroud)

Edit2:这是一个用法:

var sorter = {
    sort: function() {
        console.log('sorting');
    },
    requestSorting: function() {
        this.sort();
    }
}
sorter.requestSorting.bind(sorter);
Run Code Online (Sandbox Code Playgroud)

在这个例子中,它与PHP类中的$ this完全一样.这就是为什么我说纯粹的javascript函数更多的原因.