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 24 jQuery
jQuery简介_动力节点Java学院整理
Jul 04 jQuery
jquery+css实现下拉列表功能
Sep 03 jQuery
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
关于jquery layui弹出层的使用方法
Apr 21 jQuery
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
jQuery实现的简单日历组件定义与用法示例
Dec 24 jQuery
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
如何解决jQuery 和其他JS库的冲突
Jun 22 jQuery
jQuery实现可以计算进制转换的计算器
Oct 19 jQuery
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 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中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
javascript replace方法与正则表达式
2008/02/19 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
js动态添加表格数据使用insertRow和insertCell实现
2014/05/22 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
python自定义异常实例详解
2017/07/11 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
Python如何获取文件指定行的内容
2020/05/27 Python
意大利奢侈品网站:Italist
2016/08/23 全球购物
岗位职责的定义
2013/11/10 职场文书
俄语专业职业生涯规划
2014/02/26 职场文书
销售人员求职信
2014/07/22 职场文书
明星员工获奖感言
2014/08/14 职场文书
食品安全汇报材料
2014/08/18 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
python井字棋游戏实现人机对战
2022/04/28 Python