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插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
jQuery+PHP+Mysql实现抽奖程序
Apr 12 jQuery
jQuery滚动插件scrollable.js用法分析
May 25 jQuery
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
JavaScript实现离开页面前提示功能【附jQuery实现方法】
Sep 26 jQuery
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
jQuery发请求传输中文参数乱码问题的解决方案
May 22 jQuery
jQuery实现上下滚动公告栏详细代码
Nov 21 jQuery
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 jQuery
jquery实现动态创建form并提交的方法示例
May 27 jQuery
jquery实现烟花效果(面向对象)
Mar 10 jQuery
jQuery实现动态操作table行
Nov 23 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
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
微信小程序 登录的简单实现
2017/04/19 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
利用python实现命令行有道词典的方法示例
2017/01/31 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
Java面试题及答案
2012/09/08 面试题
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
护士进修自我鉴定
2014/02/07 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
学生逃课检讨书
2015/02/17 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL