举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历


Posted in Javascript onJuly 07, 2016

一、jQuery的向下遍历

<script src="../JS/Extend.js"></script>
 <script src="../JS/my.js"></script>
 <link type="text/css" rel="stylesheet" href="../CSS3/my.css">

</head>
<body>
<div id="div1">
 <div id="div2">
  <p id="p1">
   <a>hello world</a>
  </p>
 </div>
</div>

#div1{
 width:500px;
 height:200px;
 border:3px solid coral;
}

#div2{
 width:400px;
 height:150px;
 margin-top:10px;
 margin-left:10px;
 border: 3px solid coral;
}

#p1{
 margin-left:10px;
 margin-top:10px;
 width:150px;
 height:80px;
 border:3px solid coral;
}

1.children()方法的元素遍历

$(document).ready( function (){
 $("#div1").children().css({border:"3px solid black"});
});

可以看到此时div1的儿子div2的边框颜色变成了黑色。

2.find()方法的元素遍历

$(document).ready( function (){
 $("#div1").find("a").css({border:"3px solid grey"});
});

可以看到此时div1的重孙子a元素出现了灰色边框。、

.children()与.find()方法的区别是:children只能对元素的儿子元素进行修改,而find则可以对其所有的子元素进行修改。

二、jQuery的向上遍历
顾名思义,向上遍历就是从子集找到父集。

.parent()
$(document).ready( function (){
 $("#div2").parent().css({border:"3px solid black"});
 });

div2的父元素div1边框发生了改变

.parents()
$(document).ready( function (){
 $("a").parents().css({border:"3px solid grey"});
});

a元素除外,a元素的所有父级元素都发生了改变

.parentUntil()
$(document).ready( function (){
  $("a").parentsUntil("#div1").css({border:"3px solid grey"})
});

从a元素到div1元素之前的元素边框发生了改变。

三个方法的区别是,.parent()只能向上遍历一层;.parents()则可以指定父级元素的id进行跨越遍历;.parentUntil()则具有区间性质,将会遍历包含于区间中的所有元素。

三、遍历 - 同级(兄弟)
同级元素拥有相同的父级元素。

在 DOM 树中水平遍历。

有许多有用的方法让我们在 DOM 树进行水平遍历:

  • siblings()
  • next()
  • nextAll()
  • nextUntil()
  • prev()
  • prevAll()
  • prevUntil()

1.JQuery siblings()

siblings() 方法返回被选元素的所有同胞元素。

<section>
 <h1>文章的<span>标题</span>啦</h1>
 <p>文章的内容内容内容内容内容内容</p>
 <p>结尾部分</p>
</section>
$(document).ready(function () {
 // 获取h1标签的所有同级元素
 var elem = $('h1').siblings();
 console.log(elem); // p p 
});

2.JQuery next()

next() 方法返回被选元素的下一个同胞元素

<section>
 <h1>文章的<span>标题</span>啦</h1>
 <p>文章的内容内容内容内容内容内容</p>
 <p>结尾部分</p>
</section>
$(document).ready(function () {
 // 获取h1标签的下一个同级元素
 var elem = $('h1').next();
 console.log(elem); // p
});

3.JQuery nextAll()

nextAll() 方法返回被选元素的所有跟随的同胞元素。

<section>
 <h1>文章的<span>标题</span>啦</h1>
 <p>文章的内容内容内容内容内容内容</p>
 <p>结尾部分</p>
</section>
$(document).ready(function () {
 // 获取p标签的后面的所有同级元素
 var elem = $('p').nextAll();
 console.log(elem); // p
});

4.JQuery nextUntil()

nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素。

<section>
 <h1>文章的<span>标题</span>啦</h1>
 <p>文章的内容内容内容内容内容内容</p>
 <p>结尾部分</p>
 <h2>重点注意</h2>
</section>
$(document).ready(function () {
 // 获取
 var elem = $('h1').nextUntil('h2');
 console.log(elem); // p p 
});

5.JQuery prev() & prevAll() & prevUntil()

prev(), prevAll() 以及 prevUntil() 方法的工作方式与上面的方法类似,只不过方向相反而已:它们返回的是前面的同级元素(在 DOM 树中沿着同胞元素向后遍历,而不是向前)。

Javascript 相关文章推荐
两种简单实现菜单高亮显示的JS类代码
Jun 27 Javascript
jquery blockUI 遮罩不能消失与不能提交的解决方法
Sep 17 Javascript
jQuery实现个性翻牌效果导航菜单的方法
Mar 09 Javascript
jquery+css实现动感的图片切换效果
Nov 25 Javascript
AngularJS学习笔记之依赖注入详解
May 16 Javascript
Js获取图片原始宽高的实现代码
May 17 Javascript
详解如何在angular2中获取节点
Nov 23 Javascript
js正则相关知识点专题
May 10 Javascript
vue使用自定义icon图标的方法
May 14 Javascript
vue项目打包后打开页面空白解决办法
Jun 29 Javascript
详解微信小程序调起键盘性能优化
Jul 24 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
Sep 10 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
Jul 07 #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
You might like
如何把PHP转成EXE文件
2006/10/09 PHP
javascript闭包的高级使用方法实例
2013/07/04 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
微信小程序签到功能
2018/10/31 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
利用python生成照片墙的示例代码
2020/04/09 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
python绘制高斯曲线
2021/02/19 Python
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
一套Java笔试题
2016/08/20 面试题
教育课题研究自我鉴定范文
2013/12/28 职场文书
文明礼仪事迹材料
2014/01/09 职场文书
自荐信写法介绍
2014/01/25 职场文书
大学四年个人的自我评价
2014/02/26 职场文书
设备管理实施方案
2014/05/31 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
黄石寨导游词
2015/02/05 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
详解Python内置模块Collections
2022/03/22 Python
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python