jQuery中this与$(this)的区别

本文探讨了在jQuery和原生JavaScript中this关键字的区别及应用。重点解释了如何正确使用this与$(this),并介绍了jQuery对象与DOM对象之间的转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习Jquery的时候,遇到一个问题:

$(function() {
				console.info("this2:" + this);
				$(".div").on("mouseover", function(){
					console.info("(this)3: " + this);
					console.info("$(this)3: " + $(this));
					$(this).css("background-color", "#FFA500");
				})
			});
这里希望为div添加一个鼠标移动上去变色的事件。


刚开始没有区分开this在js中和jquery中的区别

把$(this).css("background-color", "#FFA500");写成了this.css("background-color", "#FFA500");

后来调试的时候,发现提示error说this没有这个css方法,百度后才发现:

原来css是jquery的方法,而this是原生态js中的关键字,指向调用this代码段的对象,

即:看它执行的时候是谁调用的,上述中看出this其实html元素标签<div>对象调用的。

这里说下$(this)和this的区别:

我们知道jquery是将js进行包装,用来解决不同浏览器之间js代码的调用,而将js中的dom对象转换为jquery对象

是通过$来实现。并且在jquery中是无法实现dom对象中的任何方法的。

.jQuery对象和DOM对象的互相转换
在上面第一点说了,jquery对象和dom对象是不一样的!比如jquery对象不能使用dom的方法,dom对象不能使用jquery方法,那假如我 jquery没有封装我要的方法,那能怎么办呢?
这时我们可以将jquer对象转换成dom对象

jquery对象转换成 dom对象
jquery提供了两种方法将一个jquery对象转换成一个dom对象,即[index]和get(index)。可能有人会觉得奇怪,怎么是用下标呢,没错,jquery对象就是一个数组对象.
下面代码将演示一个jquery对象转换成dom对象,再使用dom对象的方法
复制代码 代码如下:

var $cr=$("#cr"); //jquery对象
var cr = $cr[0]; //dom对象 也可写成 var cr=$cr.get(0);
alert(cr.checked); //检测这个checkbox是否给选中

dom对象转换成jquery对象
对于一个dom对象,只需要用$()把dom对象包装起来,就可以获得一个jquery对象了,方法为$(dom对象);
复制代码 代码如下:

var cr=document.getElementById("cr"); //dom对象
var $cr = $(cr); //转换成jquery对象

转换后可以任意使用jquery中的方法了.
ps: 平时用到的jquery对象都是通过$()函数制造出来的,$()函数就是一个jquery对象的制造工厂.
建议:如果获取的对象是 jquery对象,那么在变量前面加上$,这样方便容易识别出哪些是jquery对象,例如:
var $variable = jquery对象;
如果获取的是dom对象,则定义如下:
var variable = dom对象



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值