举例讲解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 相关文章推荐
Ext面向对象开发实践(续)
Nov 18 Javascript
用js实现的检测浏览器和系统的函数
Apr 09 Javascript
javawscript 三级菜单的实现原理
Jul 01 Javascript
jquery链式操作的正确使用方法
Jan 06 Javascript
jQuery+AJAX实现网页无刷新上传
Feb 22 Javascript
JavaScript模拟实现继承的方法
Mar 30 Javascript
jQuery插件jPaginate实现无刷新分页
May 04 Javascript
JS实现超精简响应鼠标显示二级菜单代码
Sep 12 Javascript
javascript与jquery动态创建html元素示例
Jul 25 Javascript
基于JavaScript实现轮播图原理及示例
Apr 10 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
jQuery实现广告显示和隐藏动画
Jul 04 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
PHP 日期加减的类,很不错
2009/10/10 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
React优化子组件render的使用
2019/05/12 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
Python学习笔记(二)基础语法
2014/06/06 Python
Python工程师面试必备25条知识点
2018/01/17 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
python是怎么被发明的
2020/06/15 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
类的核心特性有哪些
2014/01/01 面试题
DataReader和DataSet的异同
2014/12/31 面试题
采购主管岗位职责
2014/02/01 职场文书
大型晚会策划方案
2014/02/06 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
留学推荐信英文范文
2015/03/26 职场文书
python实现图片九宫格分割的示例
2021/04/25 Python
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python
《帝国时代4》赛季预告 新增内容编译器可创造地图
2022/04/03 其他游戏
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby
Python探索生命起源 matplotlib细胞自动机动画演示
2022/04/21 Python