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 setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
处理及遍历XML文档DOM元素属性及方法整理
Aug 23 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
Sep 10 Javascript
js去空格技巧分别去字符串前后、左右空格
Oct 21 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
Feb 22 Javascript
使用JavaScript刷新网页的方法
Jun 04 Javascript
学习Bootstrap组件之下拉菜单
Jul 28 Javascript
详解JavaScript表单验证(E-mail 验证)
Mar 31 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
Dec 26 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
Sep 26 Javascript
详解JS实现简单的时分秒倒计时代码
Apr 25 Javascript
微信小程序自定义多列选择器使用详解
Jun 21 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
PHP面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
使用python实现rsa算法代码
2016/02/17 Python
Python中动态创建类实例的方法
2017/03/24 Python
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
实践Vim配置python开发环境
2018/07/02 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
数控技术应届生求职信
2013/11/13 职场文书
搬家公司的创业计划书
2014/01/01 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
村官个人总结范文
2015/03/03 职场文书
数据库连接池
2021/04/06 MySQL
flex弹性布局详解
2022/03/20 HTML / CSS
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电
python数字图像处理实现图像的形变与缩放
2022/06/28 Python