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 封装 Ajax 常用方法(推荐)
May 21 jQuery
jquery DataTable实现前后台动态分页
Jun 17 jQuery
jQuery实现菜单栏导航效果
Aug 15 jQuery
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
jQuery选择器之子元素选择器详解
Sep 18 jQuery
jquery中done和then的区别(详解)
Dec 19 jQuery
jquery自定义显示消息数量
Dec 19 jQuery
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
Dec 24 jQuery
jQuery实现标签子元素的添加和赋值方法
Feb 24 jQuery
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
用jQuery实现抽奖程序
Apr 12 jQuery
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
May 19 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 更新数据库中断的解决方法
2009/06/05 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
关于Javascript加载执行优化的研究报告
2014/12/16 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
Python 时间处理datetime实例
2008/09/06 Python
使用Python下载Bing图片(代码)
2013/11/07 Python
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
Smashbox英国官网:美国知名彩妆品牌
2017/11/13 全球购物
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
拒绝黄毒毒宣传标语
2014/06/26 职场文书
土地租赁协议书
2015/01/29 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
导游词之镇江西津古渡
2019/11/06 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis