jQuery中$(this)与this的区别
经常在写jQuery的时候分不清this 和 $(this),为了方便起见尽量不用this,只用$(this)。但是今天在别人的代码的基础上改一些东西,又遇到了这个this,不得不把它弄明白。
$(this)相当于jQuery(this),是一个jQuery对象,只能使用jQuery的属性和方法;而this中存放的是DOM元素,属于javascirpt中的DOM元素对象,要使用DOM元素对象的属性和方法。
例如下面的写法是正确的:
this.setAttribute('class','test');
如果写成下面这样,就会报错:
$(this).setAttribute('class','test');
报错说undefined,也就是所$(this)没有被定义。因为setAttribute是DOM对象的方法,而不是jQuery对象的方法。同样,反过来使用也会报错。例如:
this.attr('class','test');
因为attr是jQuery设置属性值的方法,不能用在DOM元素对象上面,因此这样写会报错。这个时候应该用$(this):
$(this).attr('class','test');
其实可以通过alert查看$(this)与this的不同,alert($(this));弹出的结果是[object Object ],alert(this);弹出来的是[object HTMLImageElement]。这里的Object指的就是jQuery对象,HTMLImageElement 指的是html元素对象。
$(this)与this的区别本质上是javascript对象与jQuery对象的区别。当然jQuery对象也可以转化为javascript对象。
$(this)[]==this;
即这种jQuery对象可以通过加下标为0方式转化成javascript对象,相当于$(this).get(0) == this;用这种get(0)的方式获取到对象的DOM对象然后就可以使用相应的DOM方法。
jQuery中$(this)与this的区别的更多相关文章
- JQuery对象与DOM对象的区别与转换
		1.jQuery对象和DOM对象的区别 DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象; eg: var domObj ... 
- 【jQuery】【转】jQuery中的trigger和triggerHandler区别
		trigger(event, [data]) 在每一个匹配的元素上触发某类事件. 这个函数也会导致浏览器同名的默认行为的执行.比如,如果用trigger()触发一个'submit',则同样会导致浏览器 ... 
- jquery中attr和prop的区别、 什么时候用 attr 什么时候用 prop (转自 芈老头 )
		jquery中attr和prop的区别. 什么时候用 attr 什么时候用 prop 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这 ... 
- JQuery中的html(),text(),val()区别
		jQuery中.html()用为读取和修改元素的HTML标签,.text()用来读取或修改元素的纯文本内容,.val()用来读取或修改表单元素的value值. 1.HTML html():取得第一个匹 ... 
- jQuery中.attr()和.prop()的区别
		之前学习jQuery的时候,学习到了两种取得标签的属性值的方法:一种是elemJobj.attr(),另一种是elemJobj.prop().而在学习JS的时候,只有一种方法elemObj.getAt ... 
- jquery中attr和prop的区别(转)
		在网络上看到这样一篇关于jquery中attr和prop的区别文章,觉得不错,所以转载了. 在jQuery 1.6中,.attr()方法查询那些没有设置的属性,则会返回一个undefined.如果你要 ... 
- Jquery中的 height(), innerHeight() outerHeight()区别
		jQuery中的 height innerHeight outerHeight区别 标准浏览器下: height:高度 innerHeight:高度+补白 outerHeight:高度+补白+边框,参 ... 
- JQuery之append和appendTo的区别,还有js中的appendChild用法
		JQuery之append和appendTo的区别 append()前面是要选择的对象,后面是要在对象内插入的元素内容 appendTo()前面是要插入的元素内容且为Jquery对象,而后面是要选择的 ... 
- jQuery学习-----(二)JQuery对象与DOM对象的区别与转换
		1.jQuery对象和DOM对象的区别 DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象; eg: var domObj = ... 
- 基于jquery中children()与find()的区别介绍
		本篇文章介绍了,基于jquery中children()与find()的区别,需要的朋友参考下 .children(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈).参数可选 ... 
随机推荐
- 11.06水题Test
			11.06水题比赛 题目 描述 做法 \(BSOJ5150\) 求\(n\)个数两两之差的中位数 二分中位数,双指针判定\(\le x\)差值对数 \(BSOJ5151\) 求树的最大匹配和其个数 来 ... 
- django的惰性查询
			django中的查询,在写好查询条件之后,在不调用变量的时候,sql是不会执行的,只有在调用变量的时候,才回去执行, 在一次查询之后,会把变量放进内存,下次再使用这个变量的时候就会使用内存汇总的值. ... 
- [SDOI2010]捉迷藏 K-Dtree
			[SDOI2010]捉迷藏 链接 luogu 思路 k-dtree模板题 代码 #include <bits/stdc++.h> #define ls (t[u].ch[0]) #defi ... 
- 自制Amiibo 踩坑/填坑 指南
			去年买了台老版NS,后来得知有Amiibo这种东西的存在,但是学校附近都买不到. 再后来网上看见有人在X宝卖自制卡片,就寻思着是否能自己 DIY一套,于是掉坑里. 要想使用自制Amiibo,一共要做两 ... 
- mysql初始
			数据(data) : -描述事物的符号记录称为数据,符号既可以是数据,文字,图片,声音,语言等,符号都可以经过数字化后存入计算机中 - 计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录 ... 
- linux高性能服务器编程 (九) --I/O复用
			第九章 I/O复用 I/O复用就是一个线程可以同时监听多个文件描述符,提高程序性能.虽然I/O复用可以同时监听多个文件描述符,但是它本身是阻塞的,如果多个文件描述符准备就绪,如果不采取措施它仍然是串行 ... 
- Java解决java.io.FileNotFoundException: E:\work\work (拒绝访问。)
			一.问题 在使用FileInputStream或FileOutputStream时会遇到如下问题1和问题2. 问题1: java.io.FileNotFoundException: .\xxx\xxx ... 
- 向量召回 vearch
			开源向量召回工具 https://github.com/vearch/vearch 架构 
- 冰多多团队-第五次Scrum会议
			冰多多团队-第五次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 zpj 部分Action整合, 接入语音接口,整合项目解决兼容性问题 ASR bug修复 牛雅哲 跑通了科大讯飞语法识别的 ... 
- [Beta]Scrum Meeting#3
			github 本次会议项目由PM召开,时间为5月8日晚上10点30分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客整理文档 撰写博客整理文档 swoip 改进界面 改进界面 bh ... 
