jQuery遍历DOM元素与节点方法详解


Posted in Javascript onApril 14, 2016

本文实例讲述了jQuery遍历DOM元素与节点方法。分享给大家供大家参考,具体如下:

一、向上遍历--祖先元素

① $(selector).parent([filter]):返回selector匹配元素的直接父元素,方法可以接受一个过滤selector来过滤返回的父元素。

② $(selector).parents([filter]):返回匹配元素的所有祖先节点,一直向上直到文档根元素html,方法可以接受一个过滤selector来过滤返回的祖先节点。

备注:parent与parents的区别,parent返回直接父节点,parents返回所有的祖先节点,另外$("html").parent()返回document节点,而$("html").parents()则返回空。

③ $(selector).parentUntil([ancestorSelector][,filter]):返回匹配节点与ancestorSelector之间的所有祖先节点,注意不包括ancestorSelector匹配的几点,方法可以接受一个过滤selector来过滤返回的祖先节点,如果ancestorSelector为空或者在其祖先节点中没有找到匹配ancestorSelector的元素则返回所有祖先节点等同于parents()方法。

$(selector).parentUtil(element[,ancestorSelector]):用法及含义同上。

④ $(selector).offsetParent():返回匹配元素的最近的一个定位的祖先元素,所谓定位祖先元素是指其CSS position属性设置为relative,absolute,fixed,主要在动画演示过程中计算元素的偏移及位置具有很大的作用。

⑤ $(selector).closest(ancestorSelector[,context]):获取最近的一个匹配ancestorSelector的祖先元素,方法可以接受一个参数context来控制搜索的范围。同parents方法有如下区别:

a.closest从来当前元素本身开始向上搜索
parents则从父节点元素开始。

b.closest沿DOM树向上遍历,直到找到匹配ancestorSelector的一个元素位置
parents沿DOM树向上遍历,直到文档的根元素为止,将每个祖先元素添加到一个临时集合;如果应用了选择器,则会基于该选择器对这个集合进行筛选

c.closest返回包含0个或者一个元素的jQuery对象
parents返回包含0个、一个或多个元素的jQuery对象

其它变形用法:

$(selector).closest(ancestorSelectors[,context]);
$(selector).closest(jQuery object);
$(selector).closest(element)

二、向下遍历--子孙元素

① .children([childrenSelector]):返回元素的直接子元素,方法可以接受一个参数来过滤返回的子元素。

② .find(descendantSelector):返回元素的匹配decendantSelector的所有后代元素,一直向下知道最后一个后代。

其它变形用法:

.find(jQuery object);
.find(element);

③ .contents():返回元素的所有子元素,同children的区别是contents包含text节点及comment节点。

三、同级遍历--兄弟元素

① .siblings([selector]):返回当前元素的所有兄弟元素,方法可以接收一个可选参数来过滤返回的兄弟元素。

② .next([selector]):返回当前元素的下一个兄弟元素,方法可以接受一个可选参数来过滤返回的兄弟元素。

③ .nextAll([selector]):返回当前元素后面的所有兄弟元素,方法可以接受一个可选参数来过滤返回的兄弟元素。

④ .nextUntil([selector][,filter]):返回当前元素的所有兄弟元素直到遇到匹配selector条件的兄弟元素,方法可以接受一个可选参数filter来过滤返回的兄弟元素。

⑤ .prev/prevAll/prevUntil与next/nextAll/nextUntil用法相同,作用相近,只是搜索的方向相反。

四、过滤

① .filter(selector):从当前匹配的元素集合中筛选中符合selector条件的子集合,用的用来减少匹配的范围。

.filter(function(index)):根据回调函数来过滤当前匹配的元素集合,回调函数传入参数index是指元素在集合中的索引,在函数体内可用this来代表元素,函数返回true/false,如果返回true,则保留子元素,否则排除子元素。

其它变形用法:

.filter(element|jQueryObject)

② .first():返回当前匹配元素集合中的第一个元素。

③ .last():返回当前匹配元素集合中的最后一个元素。

④ .eq(index/-index):返回当前匹配元素集合指定位置的元素,索引从0开始,负数表示从尾到头的顺序进行排序。

⑤ .has(selector/element):从当前元素集合中返回具有特定子元素的元素集合,排除不具备对应子元素的元素。子元素可以用参数selector或者元素对象来进行匹配。

⑥ .is(selector|function(index)|element|jQueryObject):根据一个选择器或者回调函数或者元素或者jQuery对象来检验元素集合,如果其中至少包含一个符合给定表达式的元素则返回true,否则返回false,另外如果当前元素集合为空或者表达式为空,则返回false。这个方法一般用在回调函数中例如事件处理handler里面,来判断this是否为某个特定元素

⑦ .map(callback(index,domElement)):将当前匹配的元素数组通过回调函数返回值转化为另外一个对象数组(不管是否为dom元素),如果想转化普通jQueryObject数组可以使用jQuery.map(array,callback(objectOfArray,indexOfArray))方法来实现。

⑧ .not(selector|elements|function(index)|jQuery object):从当前匹配的元素数组中删除符合参数调节的元素,参数可以是selector、DOM element、普通的jQuery对象以及一个返回布尔变量的回调函数。

⑨ .slice(start[,end]):从当前匹配的元素集合中获取指定范围的一个子集,start及end如果为负数则获取元素方向从尾到头。

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
js中cookie的使用详细分析
May 28 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
Apr 01 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
Sep 28 Javascript
使用命令对象代替switch语句的写法示例
Feb 28 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 Javascript
jquery实现倒计时效果
Dec 14 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
Aug 23 Javascript
vue中eventbus被多次触发以及踩过的坑
Dec 02 Javascript
原生js调用json方法总结
Feb 22 Javascript
ng-alain表单使用方式详解
Jul 10 Javascript
解决Vue打包上线之后部分CSS不生效的问题
Nov 12 Javascript
Node.js API详解之 zlib模块用法分析
May 19 Javascript
jQuery中的基本选择器用法学习教程
Apr 14 #Javascript
jQuery遍历DOM节点操作之filter()方法详解
Apr 14 #Javascript
jQuery获取父元素及父节点的方法小结
Apr 14 #Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
Apr 14 #Javascript
Jquery实现$.fn.extend和$.extend函数
Apr 14 #Javascript
详解Jquery实现ready和bind事件
Apr 14 #Javascript
一起学写js Calender日历控件
Apr 14 #Javascript
You might like
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
基于jquery的分页控件(C#)
2011/01/06 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
Python实现决策树C4.5算法的示例
2018/05/30 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
详解用python生成随机数的几种方法
2019/08/04 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
大学生求职信范文
2014/05/24 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书
北京爱情故事观后感
2015/06/12 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS