jQuery中DOM操作原则实例分析


Posted in jQuery onAugust 01, 2019

本文实例讲述了jQuery中DOM操作原则。分享给大家供大家参考,具体如下:

一丶Get and Set in One(读写一体) 原则

为了更加易于使用,jQuery提供了简洁的DOM操作API,其方法往往是读写一体的。也就是说,某个方法既可用于读取操作,也可用于设置操作。如果没有为其传入表示值的参数,则表示获取操作,将返回获取到的数据;如果为其传入了表示值的参数,则表示设置操作,它将设置DOM元素指定属性的值。

示例代码

// 没有传入value参数,返回第一个匹配元素的value元素
var $a = $("a");
//只会取第一个匹配的
var $color = a.css("color");
//// 传入了value参数,设置所有匹配元素的color样式为"red"
$a.css("color", "red");

二丶Get first Set all(读取第一个,写操作所有) 原则

jQuery对象几乎所有的DOM操作方法都遵守”Get first Set all”原则。简而言之,假设当前jQuery对象匹配多个元素,如果使用jQuery对象的方法来获取数据(“读”数据),则只会获取第一个匹配元素的数据;如果使用jQuery对象的方法来设置元素数据(“写”数据),则会对所有匹配元素都进行设置操作

示例代码

var $lis = $("ul li"); // 匹配ul元素的所有后代li元素
var $className = $lis.attr("class"); // 只获取第一个匹配的li元素的class属性
$lis.attr("class", "left"); // 将所有匹配的li元素的class属性设为"left"

三丶链式编程风格

jQuery对象的所有实例方法,在没有特殊的返回需求的情况下,一般都会返回该jQuery对象本身(或者其它jQuery对象),因此我们可以继续调用返回的jQuery对象上的方法

示例代码

$("div") // 返回一个匹配所有div元素的jQuery对象
.find("ul") // 返回匹配这些div元素中的所有后代ul元素的jQuery对象
.children() // 返回匹配这些ul元素中的所有子代元素的jQuery对象
.css("color", "red") // 为这些子代元素设置css样式"color: red,并返回当前对象本身
.hide(); // 隐藏这些子代元素,并返回当前对象本身

四丶智能DOM操作,静默容错

在JS原生DOM操作中,如果通过getElementById()getElementsByName()等方式获取不到对应的元素,那么将返回null,在null上访问属性或方法,将会抛出异常。

与此不同的是,jQuery在匹配不到对应元素时将返回一个空的jQuery对象,我们仍然可以调用jQuery对象的方法,而且并不会报错。因为jQuery会智能地处理这种情况。如果该方法用于获取数据,则返回nullundefined;如果该方法用于设置数据,则忽略设置操作,并返回该空对象本身;如果该方法用于筛选元素,则同样返回一个新的jQuery空对象

更多关于jQuery相关内容还可查看本站专题:《jQuery操作DOM节点方法总结》、《jQuery遍历算法与技巧总结》、《jQuery表格(table)操作技巧汇总》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jquery选择器用法总结》及《jQuery常用插件及用法总结》

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
Mar 25 jQuery
jquery实现静态搜索功能(可输入搜索文字)
Mar 28 jQuery
jQuery中map函数的两种方式
Apr 07 jQuery
jQuery鼠标悬停内容动画切换效果
Apr 27 jQuery
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
Dec 24 jQuery
通过jquery的ajax请求本地的json文件方法
Aug 08 jQuery
jquery实现动态添加附件功能
Oct 23 jQuery
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 jQuery
JQuery中DOM节点的操作与访问方法实例分析
Dec 23 jQuery
jQuery擦除插件eraser使用方法详解
Jan 11 jQuery
jQuery弹框插件使用方法详解
May 26 jQuery
html5以及jQuery实现本地图片上传前的预览代码实例讲解
Mar 01 jQuery
JS/jQuery实现超简单的Table表格添加,删除行功能示例
Jul 31 #jQuery
jquery.pager.js分页实现详解
Jul 29 #jQuery
jquery.pager.js实现分页效果
Jul 29 #jQuery
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 #jQuery
jquery-ui 进度条功能示例【测试可用】
Jul 25 #jQuery
jquery ui 实现 tab标签功能示例【测试可用】
Jul 25 #jQuery
jQuery Ajax async=>false异步改为同步时,解决导致浏览器假死的问题
Jul 22 #jQuery
You might like
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
vue中的inject学习教程
2019/04/24 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
python类参数self使用示例
2014/02/17 Python
Python中__new__与__init__方法的区别详解
2015/05/04 Python
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
python脚本设置超时机制系统时间的方法
2016/02/21 Python
Python自定义主从分布式架构实例分析
2016/09/19 Python
Python脚本实现12306火车票查询系统
2016/09/30 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
Python测试人员需要掌握的知识
2018/02/08 Python
python flask安装和命令详解
2019/04/02 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
python实现桌面气泡提示功能
2019/07/29 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
保安的辞职报告怎么写
2014/01/20 职场文书
KTV的创业计划书范文
2014/02/02 职场文书
寄语是什么意思
2014/04/10 职场文书
见习报告的格式
2014/10/31 职场文书
质检员岗位职责范本
2015/04/07 职场文书
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android