有人可以解释一下,它们之间有什么区别?
例如,我可以用“那个”来做到这一点:
var bar;
button.click(function () {
if (bar == this) {
alert('same');
}
bar = this;
});
并且不能用$(那):
var bar;
button.click(function(){
if(bar == $(this)) {alert('same');}
bar = $(this);
});
答案 0 :(得分:7)
this
是普通的Javascript对象。
$(this)
是一个jQuery包装元素。你可以用它来调用jQuery方法。
答案 1 :(得分:7)
你的第二个例子不起作用,因为每次你使用$(this)
函数时,它都会返回一个唯一的 jQuery对象:
var a = document.createElement('a');
var b = $(a);
var c = $(a);
现在, b 和 c 都是唯一的jQuery实例。
console.log(c == b) // prints false
使用jQuery点击事件时,this
是回调中的event.currentTarget,它是绑定点击的HTML元素:
button.click(function(e) {
console.log (e.currentTarget == this) // prints true
})
$(this)
或jQuery(this)
是一个函数,它返回包含在唯一jQuery对象中的HTML元素,并包含所有jQuery原型。
答案 2 :(得分:1)
$(this)
创建一个包含this
的jQuery对象。 this
是代表点击按钮的HTMLElement
。
答案 3 :(得分:1)
以下quite a good page通过示例对其进行了详细解释。
(注意:这也是“jquery this”的第一个google结果)