jQuery:$(this)和this之间的差异

时间:2010-10-30 13:41:42

标签: javascript jquery

我正在尝试了解$(this)thisjQuery之间的差异,并最终找到从$(this)获取this对象的方法(this什么??):

var last_btn;
$("#element").click (function () {
    if (last_btn != null && last_btn == this) {
        // to unselect the current button
        last_btn.removeClass ("selected"); // doesn't work because this is not $(this)
    } else {
        if (last_btn != null) last_btn.removeClass ("selected"); // to unselect another old button
        last_btn = this;
        $(this).addClass ("selected");
    }
});

正如this post所述,我需要使用this而不是$(this)对象,因为这是将jQuery对象分配给var而不会松散其实例的唯一方法

我该怎么做?

2 个答案:

答案 0 :(得分:10)

在您显示的代码中,this是对单个ID element的纯DOM对象的引用。

$(this)会将DOM对象扩展为jQuery object,这样可以使addClass之类的所有jQuery都可用。

答案 1 :(得分:3)

@Pekka是对的,我觉得这篇文章很重要,可以Remy Sharp在这里发帖: