举例讲解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解决ie6下png透明的方法实例
Aug 02 Javascript
javascript实现一个数值加法函数
Jun 26 Javascript
jQuery检查事件是否触发的方法
Jun 26 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
Sep 03 Javascript
学习使用bootstrap的modal和carousel
Dec 09 Javascript
常用的js方法合集
Mar 10 Javascript
vue深入解析之render function code详解
Jul 18 Javascript
浅谈js的解析顺序 作用域 严格模式
Oct 23 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
Dec 05 Javascript
Vue点击切换颜色的方法
Sep 13 Javascript
vue渲染方式render和template的区别
Jun 05 Javascript
Vue 样式切换及三元判断样式关联操作
Aug 09 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
咖啡与牛奶
2021/03/03 冲泡冲煮
php define的第二个参数使用方法
2013/11/04 PHP
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
python中global与nonlocal比较
2014/11/21 Python
Python pickle模块用法实例
2015/04/14 Python
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
python代码区分大小写吗
2020/06/17 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
自动化专业个人求职信范文
2013/12/30 职场文书
项目管理计划书
2014/01/09 职场文书
见习期自我鉴定
2014/01/31 职场文书
单位活动策划方案
2014/08/17 职场文书
学生吸烟检讨书
2014/09/14 职场文书
导师对论文的学术评语
2015/01/04 职场文书
领导新年致辞2016
2015/07/29 职场文书
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server
golang 实现对Map进行键值自定义排序
2021/04/28 Golang
深入理解go slice结构
2021/09/15 Golang
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis