举例讲解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 相关文章推荐
jQuery中绑定事件的命名空间详解
Apr 05 Javascript
javascript使用location.search的示例
Nov 05 Javascript
IE中图片的onload事件无效问题和解决方法
Jun 06 Javascript
3个可以改善用户体验的AngularJS指令介绍
Jun 18 Javascript
第一次接触神奇的前端框架vue.js
Dec 01 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
Dec 29 Javascript
判断js数据类型的函数实例详解
May 23 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
Jul 09 Javascript
小程序调用微信支付的方法
Sep 26 Javascript
vue + elementUI实现省市县三级联动的方法示例
Oct 29 Javascript
js 函数性能比较方法
Aug 24 Javascript
详解jQuery的核心函数和事件处理
Feb 18 jQuery
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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
shopex中集成的站长统计功能的代码简单分析
2011/08/11 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
详解JavaScript的策略模式编程
2015/06/24 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
Bootstrap Table列宽拖动的方法
2018/08/15 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
python实现dict版图遍历示例
2014/02/19 Python
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
老教师工作总结的自我评价
2013/09/27 职场文书
大学生毕业求职简历的自我评价
2013/10/24 职场文书
教师节倡议书
2014/08/30 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
逃课检讨书范文
2015/05/06 职场文书
入团申请书格式
2019/06/20 职场文书
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server