1.jQuiery对象与DOM对象  

  对于刚刚接触jQuery的初学者,我们要清楚认识一点:jQuery对象与DOM对象是不一样的。可能一时半会分不清楚哪些是jQuery对象,哪些是DOM对象,下面重点介绍一下jQuery对象,以及两者相互间的转换。

  下面举一个简单的例子:

<p id="cnblogs"></p>

  使用原生的javascript处理:通过原生DOM模型提供的document.getElementById(“snblogs”) 方法获取的DOM元素就是DOM对象,通过DOM方法将自己的innerHTML与style属性处理文本与颜色。

var p = document.getElementById('snblogs');
p.innerHTML = '您好!通过博客园学习前端才是最佳的途径';
p.style.color = 'red';

  使用jQuery处理:通过$('#snblogs')方法会得到一个$p的jQuery对象,$p是一个类数组的对象这个对象里面其实是包含了DOM对象的信息的然后封装了很多操作方法,调用自己的方法html与css处理,得到的效果与标准的JavaScript处理结果是一致的。

var $p = $('#cnblogs');
$p.html('您好!通过博客园学习前端才是最佳的途径').css('color','red');

通过标准的JavaScript操作DOM与jQuyer操作DOM的对比,我们不难发现:

  1. 通过jQuery方法包装后的对象,是jQuery对象,它是一个新的对象.
  2. jQuery与DOM对象完全不是同一个东西,但是又似曾相似,因为他们都能处理DOM.
  3. 通过jQuery处理DOM的操作,可以让开发者更专注业务逻辑的开发,而不需要我们具体知道哪个DOM节点有那些方法,也不需要关心不同浏览器的兼容问题,我们可以通过jQuery更友好的API进行开发,同时代码也会更加精短.

2.jQuery对象转化为DOM对象

  jQuery库本质上还是JavaScript代码,它只是对JavaScript语言进行包装处理,为了是提供更好更方便快捷的DOM处理与开发常见中 经常使用的功能。我们可以用jQuery的同时也能混合JavaScript原生代码一起使用。通过jQuery生成的对象是一个做了包装处理的对象,如 果要用jQuery对象自己的方法,就需要满足这个对象是通过jQuery生成的。 在很多场景中,我们需要jQuery与DOM能够相互的转换,它们都 是操作的DOM元素,jQuery是一个类数组对象,DOM对象就是一个单独的DOM元素。

  如何把jQuery对象转成DOM对象?

HTML代码

<div>元素一</div>
<div>元素二</div>
<div>元素三</div>

JavaScript代码

var $div = $('div') //jQuery对象
var div = $div[0] //转化成DOM对象
div.style.color = 'red' //操作dom对象的属性  用jQuery找到所有的div元素(3个),因为jQuery 对象也是一个数组结构,可以通过数组下标索引找到第一个div元素,通过返回的div对象然后调用它style属性然修改第一个div元素的颜色。这里需要注意的一点是,数组的索引是从0开始的,也就是第一个元素下标是0  

通过jQuery自带的get()方法

jQuery对象自身提供一个.get() 方法允许我们直接访问jQuery对象中相关的DOM节点,get方法中提供一个元素的索引:

var $div = $('div') //jQuery对象
var div = $div.get(0) //通过get方法,转化成DOM对象
div.style.color = 'red' //操作dom对象的属性

其实我们翻开源码,看看就知道了,get方法就是利用的第一种方式处理的,只是包装成一个get让开发者更直接方便的使用。

3.DOM对象转化为jQuery对象

 相比较jQuery转化成DOM,开发中更多的情况是把一个dom对象加工成jQuery对象。$(参数)是一个多功能的方法,通过传递不同的参数而产生不同的作用。 如果传递给$(DOM)函数的参数是一个DOM对象,jQuery方法会把这个DOM对象给包装成一个新的jQuery对象  

  通过$(dom)方法将普通的dom对象加工成jQuery对象之后,我们就可以调用jQuery的方法了

HTML代码

<div>元素一</div>
<div>元素二</div>
<div>元素三</div>

JavaScript代码

var div = document.getElementsByTagName('div'); //dom对象
var $div = $(div); //jQuery对象
var $first = $div.first(); //找到第一个div元素
$first.css('color', 'red'); //给第一个元素设置颜色

通过getElementsByTagName获取到所有div节点的元素,结果是一个dom合集对象,不过这个对象是一个数组合集(3个div元素)。通过$(div)方法转化成jQuery对象,通过调用jQuery对象中的first与css方法查找第一个元素并且改变其颜色。
 

转载于:https://www.cnblogs.com/wgl1995/p/5608382.html

jQuery基础--样式篇(3)相关推荐

  1. jQuery 学习-样式篇(八):jQuery 设置元素的 CSS 样式

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  2. jQuery 学习-样式篇(三):jQuery 选择器类型详解

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  3. jQuery基础入门篇

    一.使用JQ完成首页的定时广告弹出 1.需求分析 在首页中(logo的上方)显示一个广告图片(页面加载后,间隔3秒弹出广告图片,再间隔3秒后隐藏广告图片).[使用jQuery实现] 2.技术分析 2. ...

  4. jQuery 学习-样式篇(九):jQuery 存储和删除元素私有数据的方法

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  5. jQuery 学习-样式篇(七):jQuery 控制元素类属性

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  6. jQuery 学习-样式篇(六):jQuery 获取和设置表单元素的值

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  7. jQuery 学习-样式篇(二):jQuery 对象与原生 DOM 对象

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  8. jQuery 学习-样式篇(一):如何引用 jQuery

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  9. jQuery 学习-样式篇(四):jQuery 设置和删除元素的属性

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

最新文章

  1. mysql 20小时内_生产环境删除数据库,如何实现在1小时内快速恢复?
  2. 玩转oracle 11g(3):配置监听
  3. 一堆数据中将某一个值相同的数据进行分组
  4. bliss android x86,Bliss OS现在可让您基于Android-x86和AOSP在PC上运行Android 10
  5. (day 20 - 中序遍历加双指针)剑指 Offer 36. 二叉搜索树与双向链表
  6. Gridview中Dataformatstring的使用
  7. 诺基亚x6 android one,诺基亚X6手机推送固件更新:提升安卓8.1系统流畅性,新增后台锁定...
  8. 18个最受欢迎的低代码开发平台【开源】
  9. 详解c语言中‘\0’ ,‘0’, “0” ,0的区别
  10. java创建临时文件夹_Java 创建文件、文件夹以及临时文件
  11. 零基础学彩铅——下午茶(含详细步骤)
  12. 3825. 逃离大森林
  13. 30个值得收藏可免费搜索/下载PDF电子图书(文档)的搜索引擎
  14. 见证微信小程序之火热
  15. php adodb smarty,ADODB结合SMARTY使用~超级强
  16. 南北流量和东西流量——它们是什么意思?
  17. 纵观无盘系统发展历史
  18. 作为技术人,如何突破自己的技术瓶颈,从而提高自己的核心竞争力
  19. 2019-01-25T01:30:00.000+0000 格式转换
  20. 地图采集车的那些事 | 硬件质量篇

热门文章

  1. 2017年4月21号课堂笔记
  2. 最大流EK和Dinic算法
  3. 使用wrapper将java程序注册程windows服务后不生效
  4. JS获取屏幕浏览器网页高度和宽度属性
  5. 网页弹出窗口代码【来源于网络】
  6. 30岁前不要在乎的29件事(转载)
  7. 德国留学语言c1,德国留学申请,关于语言
  8. python 获取系统相关编码的函数
  9. 局域网mysql数据库访问
  10. 微型计算机实验报告温度控制,单片机、可编程控制器实验教学大纲.doc