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实现静态搜索功能(可输入搜索文字)
Mar 28 jQuery
jQuery实现select下拉框获取当前选中文本、值、索引
May 08 jQuery
jQuery 表单序列化实例代码
Jun 11 jQuery
详解jquery选择器的原理
Aug 01 jQuery
使用jQuery实现购物车结算功能
Aug 15 jQuery
jQuery仿移动端支付宝键盘的实现代码
Aug 15 jQuery
jquery获取元素到屏幕四周可视距离的方法
Sep 05 jQuery
[jQuery] 事件和动画详解
Mar 05 jQuery
jquery实现选项卡切换代码实例
May 14 jQuery
jquery图片预览插件实现方法详解
Jul 18 jQuery
Jquery动态列功能完整实例
Aug 30 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程序的国际化实现方法(利用gettext)
2011/08/14 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
提交表单时执行func方法实现代码
2013/03/17 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
jquery实现图片轮播器
2017/05/23 jQuery
本地存储localStorage用法详解
2017/07/31 Javascript
jqueryUI tab标签页代码分享
2017/10/09 jQuery
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
Python字符串处理函数简明总结
2015/04/13 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
Python字典底层实现原理详解
2019/12/18 Python
python隐藏类中属性的3种实现方法
2019/12/19 Python
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
init进程的作用
2012/04/12 面试题
优秀毕业生自我鉴定
2014/01/19 职场文书
物流创业计划书
2014/02/01 职场文书
技能竞赛活动方案
2014/02/21 职场文书
档案保密承诺书
2014/06/03 职场文书
文体活动总结
2015/02/04 职场文书
开学典礼校长致辞
2015/07/29 职场文书