jquery $(this) 和this的区别

首先来看看JQuery中的 $() 这个符号,实际上这个符号在JQuery中相当于JQuery(),即$(this)=jquery();也就是说,这样可以返回一个jquery对象。那么,当你在网页中alert($('#id'));时,会弹出一个[object Object ],这个object对象,也就是jquery对象了。
那么,我们再回过头来说$(this),这个this是什么呢?假设我们有如下的代码:

<input id="jq" type="text" value=1>
$("#jq").click(function(){
alert($(this)); // [object Object ]
alert(this); // [object HTMLInputElement]
console.log($(this)); // r.fn.init [input#jq]
console.log(this); // <input id="jq" type="text" value="1">
console.log(this.value); // 1
console.log($(this).value); // undefined
console.log($(this).children()); // r.fn.init [prevObject: r.fn.init(1)]
console.log(this.children()); // Uncaught TypeError: this.children is not a function
});

也就是说,this返回的是一个html对象,也就是节点,他可以获取到属性值,但是html对象不具有function方法,自然会报错,因此需要使用$(this)才能够调用方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值