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 21 jQuery
BootStrap中jQuery插件Carousel实现轮播广告效果
Mar 27 jQuery
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
jQuery替换节点元素的操作方法
Mar 18 jQuery
利用jquery和BootStrap实现动态滚动条效果
Dec 03 jQuery
jQuery zTree插件使用简单教程
Aug 16 jQuery
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
Apr 30 jQuery
jQuery 实现扁平式小清新导航
Jul 07 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开发文件系统实例讲解
2006/10/09 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
多个python文件调用logging模块报错误
2020/02/12 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
奶茶店创业计划书范文
2014/01/17 职场文书
小学运动会通讯稿
2015/07/18 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
Python合并多张图片成PDF
2021/06/09 Python
教你部署vue项目到docker
2022/04/05 Vue.js