jquery对象和DOM对象的任意相互转换


Posted in Javascript onFebruary 21, 2016

什么是jQuery对象?
---就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,其可以使用jQuery里的方法。
比如:
$("#test").html() 意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法
这段代码等同于用DOM实现代码:

document.getElementById("id").innerHTML;

虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错。比如:$("#test").innerHTML、document.getElementById("id").html()之类的写法都是错误的。
还有一个要注意的是:用#id作为选择符取得的是jQuery对象与document.getElementById("id")得到的DOM对象,这两者并不等价。请参看如下说的两者间的转换。
既然jQuery有区别但也有联系,那么jQuery对象与DOM对象也可以相互转换。在再两者转换前首先我们给一个约定:如果一个获取的是jQuery对象,那么我们在变量前面加上$,如:var $variab = jQuery对象;如果获取的是DOM对象,则与习惯普通一样:var variab = DOM对象;这么约定只是便于讲解与区别,实际使用中并不规定。

在讨论jquery对象和DOM对象的相互转换之前,先约定好定义变量的风格如果获取的是jquery对象,那么在变量前面加上$,例如

var $varible = jquery对象;

如果获取的是DOM对象,则定义如下:

var varible = DOM对象;

1.jquery对象转成DOM对象:

jquery对象不能使用DOM中的方法,但如果对jquery对象所提供的方法不熟悉,或者没有jquery想封装的方法,不得不使用DOM对象,即【index】和get[index].

(1)jquery对象是一个数组对象,可以通过【index】的方法得到相应的DOM对象。

jquery的代码如下

<body>
  <p>my</p>
  <p>my</p>
<script src="jquery-2.1.4.min.js"></script>
<script>
  var $cr = $("p");  //jquery对象
  var cr = $cr[1];  //dom对象
  var ct = $cr.get(0)  //第二种转换为DOM对象的方式
  cr.innerHTML = "you"  //检测是否转换成功,可以用DOM方法 输出结果为第二个my改成了you
  ct.innerHTML = 'fuck'  //输出结果第一个my改成了fuck
</script>
</body>

(2).DOM对象转换为jquery对象:

对于一个DOM对象,只需要用$()把DOM对象给包装起来,就可以获得一个jquery对象了,方式为$(DOM对象)。

jquery代码如下:

<body>
  <p>my</p>
  <p>my</p>
<script src="jquery-2.1.4.min.js"></script>
<script>
  var cr = document.getElementsByTagName("p") //DOM对象
  var $cr = $(cr);   //jquery对象
  $cr.eq(0).("fuck"); //检测是否转换成功,可以用jquery方法 输出结果为第二个my改成了fuck
  $cr.eq(1).html("you"); //输出结果为my改成you
</script>
</body>

转换后,可以任意使用jquery方法。

 通过以上方法,可以任意的相互转换jquery对象和DOM对象。

最后再次强调,DOM对象才能使用DOM方法,jquery对象不能使用DOM中的方法,但jquery对象提供了一套更加完善的工具用于操作DOM。

希望大家会喜欢本文。

Javascript 相关文章推荐
js 全兼容可高亮二级缓冲折叠菜单
Jun 04 Javascript
jQuery 和 CSS 的文本特效插件集锦
Dec 12 Javascript
JavaScript创建一个object对象并操作对象属性的用法
Mar 23 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
Mar 24 Javascript
JavaScript类型系统之基本数据类型与包装类型
Jan 06 Javascript
轻松实现javascript图片轮播特效
Jan 13 Javascript
快速掌握Node.js模块封装及使用
Mar 21 Javascript
深入理解$.each和$(selector).each
May 15 Javascript
bootstrap table实例详解
Jan 06 Javascript
jQuery 判断元素整理汇总
Feb 28 Javascript
ES6知识点整理之模块化的应用详解
Apr 15 Javascript
Vue-router编程式导航的两种实现代码
Mar 04 Vue.js
jQuery实现div拖拽效果实例分析
Feb 20 #Javascript
jQuery实现简单隔行变色的方法
Feb 20 #Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
Feb 20 #Javascript
jQuery获得字体颜色16位码的方法
Feb 20 #Javascript
jQuery实现的文字hover颜色渐变效果实例
Feb 20 #Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
Feb 19 #Javascript
js面向对象的写法
Feb 19 #Javascript
You might like
php文件上传后端处理小技巧
2016/05/22 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
js 编程笔记 无名函数
2011/06/28 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
2017/01/18 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
深入研究React中setState源码
2017/11/17 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
python实现斐波那契递归函数的方法
2014/09/08 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
Python计算字符宽度的方法
2016/06/14 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
python生成并处理uuid的实现方式
2020/03/03 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
如何让Java程序执行效率更高
2014/06/25 面试题
简述安装Slackware Linux系统的过程
2012/01/12 面试题
大学生农村教师实习自我鉴定
2013/09/21 职场文书
毕业求职自荐信格式是什么
2013/11/19 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
城管个人总结
2015/02/28 职场文书
2015年学生会个人工作总结
2015/04/09 职场文书
Python torch.flatten()函数案例详解
2021/08/30 Python