$(this)和this之间有什么区别?

Dyl*_*sch 6 javascript jquery this

我有以下代码

$('a').click(function() {
var url= this.href;
alert(url);
});
Run Code Online (Sandbox Code Playgroud)

这很好用,确定返回的结果是标记的url.

但是,如果我将上面的代码更改为

$('a').click(function() {
var url= $(this).href;
alert(url);
});
Run Code Online (Sandbox Code Playgroud)

结果未定义.

有人请帮忙清除这个吗?我为此敲打我的脑袋....

Ste*_*all 19

$(this)创建一个包装的jQuery对象this.本机DOM对象有一个href属性,但jQuery没有.

$(this).attr("href") 会工作.


bra*_*rad 7

this 在你的情况下是实际的dom元素,所以锚标签

$(this) 是一个jquery对象,用所有jquery的优点包装dom元素.

所以.href不是该jquery对象的属性,但它是dom对象.

您可以使用$(this).attr('href')jQuery对象来实现相同的功能.