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 相关文章推荐
js中判断控件是否存在
Aug 25 Javascript
基于jquery的loading 加载提示效果实现代码
Sep 01 Javascript
原生JS实现加入收藏夹的代码
Oct 24 Javascript
Javascript中3种实现继承的方法和代码实例
Aug 12 Javascript
Javascript学习笔记之数组的构造函数
Nov 23 Javascript
AngularJS实现表单验证
Jan 28 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
解析Vue2.0双向绑定实现原理
Feb 23 Javascript
fullPage.js和CSS3实现全屏滚动效果
May 05 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
Jan 16 Javascript
layui自己添加图片按钮并点击跳转页面的例子
Sep 14 Javascript
在Vue中获取自定义属性方法:data-id的实例
Sep 09 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
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
Php Mssql操作简单封装支持存储过程
2009/12/11 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
php页面缓存方法小结
2015/01/10 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
JavaScript Archive Network 集合
2007/05/12 Javascript
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
JS实现选择TextArea内文本的方法
2015/08/03 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
nodejs发送http请求时遇到404长时间未响应的解决方法
2017/12/10 NodeJs
浅析Angular19 自定义表单控件
2018/01/31 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
js实现3D旋转效果
2020/08/18 Javascript
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python抽象类的新写法
2015/06/18 Python
解决Django中多条件查询的问题
2019/07/18 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
Django 项目布局方法(值得推荐)
2020/03/22 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
应届大学生求职信
2013/12/01 职场文书
服装厂厂长岗位职责
2013/12/27 职场文书
承诺保证书格式
2015/02/28 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
Java实现聊天机器人完善版
2021/07/04 Java/Android