在这个sprint中,因为要写前端UI,所以用到了jQuery,但是jQuery在向上遍历DOM树的API中,有parents()、 parent()、closest()这几个,一直不太清楚它们具体的区别,所以狠下心好好读了一下jQuery的API文档,并把区别记在这里,以供参考。

1.parents([selector])

本方法用于选择给定jQuery对象中包含的DOM元素或者DOM元素集的祖先节点,并将这些节点包装成jQuery对象返回,返回的节点集是以从里到外的顺序排序的。

同时,本方法还接受一个字符串选择器,用于从返回的节点集中筛选符合选择器的子元素集。

2.parent([selector])

本方法用于选择给定jQuery对象中包含的DOM元素或者DOM元素集的父节点。它和parents()不同的是,它只向上搜索一层,而parents()会搜索整个DOM树。

本方法也可以接受一个字符串选择器,用于筛选返回的元素。

有人可能会问:一个DOM元素的父元素不是只有一个么,为什么还要一个selector选择器进行筛选呢?其实一个jQuery对象可能包含有很多个DOM元素,例如$('a').parent()就是选择所有标签的父元素,这样返回的就是一个元素集,所以可以进行筛选。

3.closest(selector)

本方法用于向上遍历jQuery对象中包含的DOM元素或者DOM元素集的祖先节点,直到找到符合selector选择器的节点为止。

它和parents()的区别:

closest()从自身开始向上遍历,直到找到一个适合的节点,返回的jQuery对象包含0个或者1个对象;

parents()从自身的父节点开始向上遍历,返回所有祖先节点,并根据选择器对这些节点进行筛选,最终返回的jQuery对象可能包含0、1或者多个对象。

一个能说明区别的例子:

a test document

My parents

在上述文档中:

$('b').parents()将返回:由span、p、div、body、html等元素构造的jQuery对象;

$('b').parent()将返回:由span构造的jQuery对象;

$('b').closest('div')将返回:由div构造的jQuery对象。

Html遍历dom树,jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别相关推荐

  1. jQuery过滤、遍历同级元素、向上遍历、向下遍历

    话不多说,直接贴代码(我只是希望能在温习原生js的同时,发现一些有趣的东西!) .html: <!DOCTYPE html> <html> <head> <m ...

  2. jQuery基础二DOM操作

    DOM:Document Object Model的缩写,中文是文档对象模型,根据W3C DOM规范(htttp://www.w3.org/DOM ),它是一种与浏览器.平台.语言无关的接口,该接口可 ...

  3. jQuery对象和DOM对象互转的问题、jQuery文件引入问题、DOM版本的网页开关灯

    jQuery对象和DOM对象互转的问题 <!DOCTYPE html> <html lang="en"> <head><meta char ...

  4. jQuery对象与DOM对象的区别

    突然想起以前实验室的老师同学,放一张照片怀念一下大学时光~ jQuery对象: 什么是jQuery对象?说直白点,就是用jQuery方法获取到的对象,例如: var $obj = $("#u ...

  5. jQuery中的DOM遍历方法

    一.向上遍历 1. parent() 获取元素的直接父元素 $("span").parent().css({"color":"red",&q ...

  6. 【总结整理】JQuery基础学习---DOM篇

    前言: 先介绍下需要用到的浏览器提供的一些原生的方法(这里不处理低版本的IE兼容问题) 创建流程比较简单,大体如下: 创建节点(常见的:元素.属性和文本) 添加节点的一些属性 加入到文档中 流程中涉及 ...

  7. 三、jQuery 中的 DOM 操作(超详细)

    文章目录 前言 一. DOM 介绍 二. 查找节点 2.1查找元素节点 2.2查找属性节点 三. 创建节点 3.1.创建元素节点 3.2.创建文本节点 3.3.创建属性节点 四.插入节点 4.1 DO ...

  8. jQuery - 元素遍历

    前言: 一提到"遍历",大家一般都能联想到  each()  或者  for()等语法,但是在jQuery中究竟什么是遍历? 什么是遍历: jQuery 遍历,意为"移动 ...

  9. Jquery基础之DOM操作

    Jquery基础之DOM操作 Dom是Document Object Model的缩写,意思是文档对象模型.DOM是一种与浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准组件.DO ...

最新文章

  1. 第15章节-Python3.5-Django实现用户登录与前端交互2 14
  2. boost::fusion::pair用法的测试程序
  3. js一个大盒子中有三个小盒子_寒假预习:一万有多大,数一数估一估,亲身感觉一万有多大...
  4. html++标签页+界面,CSS+DIV实现多标签页面。
  5. matlab 03d,randomforest-matlab 一个 实现 的源代码,里面有使用说明和范例 Data Mining 数据挖掘 242万源代码下载- www.pudn.com...
  6. 在单位用oracle备份到磁带的脚本(看不明白的地方交流)
  7. Python Pandas General functions(静态方法)
  8. python之判断一个值是不是可以被调用
  9. C#对MySql进行增删该查
  10. 我的小站:诗词在线 http://www.chinapoesy.com 欢迎大家测试速度。特别是网通的。...
  11. 怎么在linux中运行gamess,桌面应用|在 Linux 中怎么运行 MS-DOS 游戏和程序
  12. serialVersionUID作用
  13. 重构之前的数据统计,用于数据归档,要考虑数据迁移
  14. Python3+Scrapy实现网页爬虫
  15. tplink虚拟服务器 tcp,关于TP-Link路由器端口映射详解
  16. Python批量自动下载获取图片
  17. matlab画动物轮廓图,MATLAB一维插值的应用实例—画左右手的轮廓图
  18. 得到一个数每一位数字的几种方法
  19. java锁的种类以及辨析(一):自旋锁
  20. 条形码技术在供应链管理中的作用

热门文章

  1. Redhat 6.2(64位) 及 Oracle 11.2.0.4(64位)安装随笔
  2. 关于数据仓库的设计!
  3. 天之痕java版与ios版_iOS 获取当前app的名称和版本号
  4. Yarn 任务缓存数据和HistoryServer 历史任务日志数据清理
  5. 计算机软件录音注意事项,录音笔怎么用(录音笔的使用方法及注意事项)
  6. 巨头纷纷布局分布式云,一场新的云战争即将打响
  7. Linux操作系统学习笔记(三十)docker和k8s的恩怨情仇
  8. 考虑新西兰留学,什么专业好移民呢?
  9. 2023服装厂erp生产管理系统有哪些?该如何选择?
  10. 315晚会回顾:手机充电站可控制你的手机、软件合成照片秒破人脸识别