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实现瀑布流页面
Apr 11 jQuery
jquery append与appendTo方法比较
May 24 jQuery
jQuery表单设置值的方法
Jun 30 jQuery
jQuery取得元素标签名称小结(附代码)
Aug 16 jQuery
一个有意思的鼠标点击文字特效jquery代码
Sep 23 jQuery
jQuery中图片展示插件highslide.js的简单dom
Apr 22 jQuery
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
jQuery实现的五星点评功能【案例】
Feb 18 jQuery
[jQuery] 事件和动画详解
Mar 05 jQuery
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
Jul 10 jQuery
Jquery Datatables的使用详解
Jan 30 jQuery
jQuery实现开关灯效果
Aug 02 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
德劲1103二次变频版的打磨
2021/03/02 无线电
改进的IP计数器
2006/10/09 PHP
php getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
javascript document.referrer 用法
2009/04/30 Javascript
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
对vue中v-on绑定自定事件的实例讲解
2018/09/06 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
python的绘图工具matplotlib使用实例
2014/07/03 Python
python中reader的next用法
2018/07/24 Python
python web框架中实现原生分页
2019/09/08 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
人力资源主管职责范本
2014/03/05 职场文书
学籍证明模板
2014/11/21 职场文书
门市房租房协议书
2014/12/04 职场文书
怎样写观后感
2015/06/19 职场文书
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python