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 相关文章推荐
JS与jQuery实现子窗口获取父窗口元素值的方法
Apr 17 jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
Aug 17 jQuery
jQuery图片加载失败替换默认图片方法汇总
Nov 29 jQuery
jQuery选择器之层次选择器用法实例分析
Feb 19 jQuery
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
jQuery zTree插件快速实现目录树
Aug 16 jQuery
jQuery实现可编辑的表格
Dec 11 jQuery
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
JavaScript或jQuery 获取option value值方法解析
May 12 jQuery
如何在vue 中引入使用jquery
Nov 10 jQuery
jquery实现拖拽添加元素功能
Dec 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)
2010/09/04 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
linux命令之调试工具strace的深入分析
2013/06/03 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
关于PHP5.6+版本“No input file specified”问题的解决
2019/12/11 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
jQuery判断复选框是否勾选的原理及示例
2014/05/21 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
BootStrapTable 单选及取值的实现方法
2017/01/10 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
View.post() 不靠谱的地方你知道多少
2017/08/29 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
送你43道JS面试题(收藏)
2019/06/17 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
python将ansible配置转为json格式实例代码
2017/05/15 Python
python之django母板页面的使用
2018/07/03 Python
Django 多语言教程的实现(i18n)
2018/07/07 Python
Python版名片管理系统
2018/11/30 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
妇产科护士自我鉴定
2013/10/15 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
2022年显卡天梯图(6月更新)
2022/06/17 数码科技
Python如何加载模型并查看网络
2022/07/15 Python