我正在尝试了解$(this)
中this
和jQuery
之间的差异,并最终找到从$(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而不会松散其实例的唯一方法
我该怎么做?
答案 0 :(得分:10)
在您显示的代码中,this
是对单个ID element
的纯DOM对象的引用。
$(this)
会将DOM对象扩展为jQuery object,这样可以使addClass
之类的所有jQuery都可用。
答案 1 :(得分:3)
@Pekka是对的,我觉得这篇文章很重要,可以Remy Sharp在这里发帖: