$(这)和这,有什么区别?

时间:2010-02-19 09:45:47

标签: jquery

有人可以解释一下,它们之间有什么区别?

例如,我可以用“那个”来做到这一点:

var bar;
button.click(function () {
    if (bar == this) {
        alert('same');
    }
    bar = this;
});

并且不能用$(那):

var bar;
button.click(function(){
  if(bar == $(this)) {alert('same');}
  bar = $(this);
});

4 个答案:

答案 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结果)