jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结


Posted in Javascript onJuly 07, 2016

如下图,显示了HTML中的结构树,通过 JQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行遍历。

jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结

遍历 - 父级(祖先)
向上遍历DOM数。

通过如下三个方法,我们可以获取父级元素:

  1. parent()
  2. parents()
  3. parentsUntil()

1.JQuery parent()

parent() 方法返回被选元素的直接父元素。
该方法只会向上一级对 DOM 树进行遍历。

<section>
  <h1>文章的<span>标题</span>啦</h1>
  <p>文章的内容内容内容内容内容内容</p>
  <p>结尾部分</p>
</section>
$(document).ready(function () {
  // 通过parent()函数,可获取当前元素的直接父级元素
  var elem = $('span').parent();
  console.log(elem);
});

2.JQuery parents()

parents() 方法返回被选元素的所有父元素。

<section>
  <h1>文章的<span>标题</span>啦</h1>
  <p>文章的内容内容内容内容内容内容</p>
  <p>结尾部分</p>
</section>
$(document).ready(function () {
  // 通过parent()函数,可获取当前元素的所有父级元素
  var elem = $('span').parents();
  console.log(elem); 
});

3.JQuery parentsUntil()

parentsUntil() 方法返回介于两个给定元素之间的所有父级元素

<section>
  <h1>文章的<span>标题</span>啦</h1>
  <p>文章的内容内容内容内容内容内容</p>
  <p>结尾部分</p>
</section>
$(document).ready(function () {
  // 获取span在body标签下的所有父级元素
  var elem = $('span').parentsUntil('body');
  console.log(elem);
});

遍历 - 子级(后代)
向下遍历DOM树。

向下遍历可以使用如下两个函数:

1.children()
2.find()
1.JQuery children()

children() 方法返回被选元素的所有直接子元素。
该方法只会向下一级对 DOM 树进行遍历。

<section>
  <h1>文章的<span>标题</span>啦</h1>
  <p>文章的内容内容内容内容内容内容</p>
  <p>结尾部分</p>
</section>
$(document).ready(function () {
  // 获取section标签下的所有直接子元素
  var elem = $('section').children();
  console.log(elem);
});

2.JQuery find()

find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。

<section>
  <h1>文章的<span>标题</span>啦</h1>
  <p>文章的内容内容内容内容内容内容</p>
  <p>结尾部分</p>
</section>
$(document).ready(function () {
  // 获取section标签下的所有p标签的子元素
  var elem = $('section').find('p');
  console.log(elem);

  // 获取section标签下的所有子元素
  var elems = $('section').find('*');
  console.log(elems);
});

遍历 - 同级(兄弟)

有以下几个方法:
1.sibings()
除自身外,遍历同级的所有元素,修改适用于同级所有元素

2.next()
除自身外,仅下一个元素修改

3.nextAll()
除自身外,修改下面的所有元素

4.nextUntil()
除自身外,对下面的元素进行区间修改

5.prev()
修改上一个元素

6.preAll()
修改位于元素之上的所有元素

7.preUntil()
对位于区间之上的元素进行区间修改

<style>
    .bd *{
      margin:5px;
      padding:3px;
      border:3px solid black;
    }
  </style>
</head>
<body>
<div class="bd">
<p></p>
<h1></h1>
<h2></h2>
<h3></h3>
<h4></h4>
<h5></h5>
<h6></h6>
  </div>
</body>
$(document).ready(function(){
  //$("h1").siblings().css({border:"3px solid red"})
 //$("h4").nextAll().css({border:"4px solid grey"});
  $("h2").prev().css({border:"3px solid green"});
});
Javascript 相关文章推荐
JavaScript对象、属性、事件手册集合方便查询
Jul 04 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
May 03 Javascript
JQuery异步加载无限下拉框级联功能实现示例
Feb 19 Javascript
js实现圆盘记速表
Aug 03 Javascript
瀑布流的实现方式(原生js+jquery+css3)
Jun 28 Javascript
同步文本框内容JS代码实现
Aug 04 Javascript
初识简单却不失优雅的Vue.js
Sep 12 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
Jan 13 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
Feb 06 Javascript
AngularJS发送异步Get/Post请求方法
Aug 13 Javascript
基于JS开发微信网页录音功能的实例代码
Apr 30 Javascript
JavaScript语法约定和程序调试原理解析
Nov 03 Javascript
简单实现js页面切换功能
Jan 10 #Javascript
JavaScript作用域示例详解
Jul 07 #Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
Jul 07 #Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
Jul 07 #Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
Jul 07 #Javascript
jQuery之简单的表单验证实例
Jul 07 #Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
Jul 07 #Javascript
You might like
NT IIS下用ODBC连接数据库
2006/10/09 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
使用php判断网页是否gzip压缩
2013/06/25 PHP
领悟php接口中interface存在的意义
2013/06/27 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
js实现百度登录框鼠标拖拽效果
2017/03/07 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
vue实现评论列表功能
2019/10/25 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Python实现将xml导入至excel
2015/11/20 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
消防应急演练方案
2014/02/12 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
详解Python魔法方法之描述符类
2021/05/26 Python
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python