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 中document.URL 和 windows.location.href 的区别
Nov 11 Javascript
面向对象的Javascript之三(封装和信息隐藏)
Jan 27 Javascript
JQuery的Ajax跨域请求原理概述及实例
Apr 26 Javascript
AngularJS语法详解
Jan 23 Javascript
JavaScript Sort 的一个错误用法示例
Mar 20 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
Sep 21 Javascript
详解vue渲染从后台获取的json数据
Jul 06 Javascript
详解EasyUi控件中的Datagrid
Aug 23 Javascript
JS实现json对象数组按对象属性排序操作示例
May 18 Javascript
Vue可自定义tab组件用法实例
Oct 24 Javascript
JS快速实现简单计算器
Apr 08 Javascript
详解Vue3 Composition API中的提取和重用逻辑
Apr 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
php基础知识:类与对象(5) static
2006/12/13 PHP
PHP 处理图片的类实现代码
2009/10/23 PHP
PHP导入Excel到MySQL的方法
2011/04/23 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
JavaScript编写的网页小游戏,很给力
2017/08/18 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
Python复制目录结构脚本代码分享
2015/03/06 Python
Python实现的数据结构与算法之链表详解
2015/04/22 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Django中的cookie和session
2019/08/27 Python
全球最大的房车租赁市场:Outdoorsy
2018/09/19 全球购物
企业为何需要商业计划书
2013/12/26 职场文书
初中物理教学反思
2014/01/14 职场文书
三万活动总结
2014/04/28 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书