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 checkbox(复选框) 使用集锦
Apr 28 Javascript
javascript OFFICE控件测试代码
Dec 08 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
May 08 Javascript
利用js动态添加删除table行的示例代码
Dec 16 Javascript
JQuery打造省市下拉框联动效果
May 18 Javascript
js实现横向拖拽导航条功能
Feb 17 Javascript
关于JavaScript中forEach和each用法浅析
Jul 27 Javascript
浅谈Vue SSR 的 Cookies 问题
Nov 20 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
Sep 30 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
Sep 26 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
Apr 13 Javascript
微信小程序实现上传多张图片、删除图片
Jul 29 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
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
完美解决PHP中文乱码
2009/11/26 PHP
php strftime函数获取日期时间(switch用法)
2018/05/16 PHP
PHP vsprintf()函数格式化字符串操作原理解析
2020/07/14 PHP
checkbox 复选框不能为空
2009/07/11 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
js工具方法弹出蒙版
2013/05/08 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
酒店营销策划方案
2014/02/07 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
中小学校园安全广播稿
2014/09/29 职场文书