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从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
jQuery 回车事件enter使用示例
Feb 18 Javascript
node.js使用nodemailer发送邮件实例
Mar 10 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
Mar 18 Javascript
简介JavaScript中的setTime()方法的使用
Jun 11 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
Mar 14 Javascript
jquery结合html实现中英文页面切换
Nov 29 Javascript
Angularjs单选框相关的示例代码
Aug 17 Javascript
vue项目中用cdn优化的方法
Jan 03 Javascript
vue父子组件间引用之$parent、$children
May 20 Javascript
vue + el-form 实现的多层循环表单验证
Nov 25 Vue.js
vue3语法糖内的defineProps及defineEmits
Apr 14 Vue.js
简单实现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
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
详解node.js中的npm和webpack配置方法
2018/01/21 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
vue filters的使用详解
2018/06/11 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
vue 组件简介
2020/07/31 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
python字典多条件排序方法实例
2014/06/30 Python
python中使用mysql数据库详细介绍
2015/03/27 Python
Python常用小技巧总结
2015/06/01 Python
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
如何基于Python创建目录文件夹
2019/12/31 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
大学辅导员事迹材料
2014/02/05 职场文书
目标责任书格式
2014/07/28 职场文书
教师病假条范文
2015/08/17 职场文书
九年级英语教学反思
2016/02/15 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS