$(this)vs JavaScript中的这个

时间:2013-12-21 10:42:09

标签: javascript jquery

在jQuery中编写JavaScript时最好这样做:

$('.select').click(function(e){
    $(this).something();
    //Or
    this.something();
});

有什么区别吗?两种方式的优点和缺点是什么?

5 个答案:

答案 0 :(得分:3)

他们完全不同。两者都没有“更好”,你无法比较它们的优缺点。一个是jQuery对象,一个是原始HTML元素。

答案 1 :(得分:3)

$(this)是一个jQuery对象,this是一个纯DOM元素对象。见这个例子:

$(".test").click(function(){
    alert($(this).text());
    //and
    alert(this.text()); // error no method
});

答案 2 :(得分:1)

其他答案是正确的,但是我想补充说this$.fn.function的上下文中也引用了jQuery对象。

例如:

$.fn.function = function() {
  this.width();
}

答案 3 :(得分:0)

在事件处理程序this的jquery的回调范围内是纯元素。

$(this)会将其再次包装到jquery实例

所以结果非常不同,它只取决于你需要什么......

答案 4 :(得分:0)

this$(this)会给出不同的结果,因为$(this)是jQuery实例,this是HTML元素。