举例讲解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 相关文章推荐
javascript 密码强弱度检测万能插件
Feb 25 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
Nov 02 Javascript
return false;和e.preventDefault();的区别
Jul 11 Javascript
JS date对象的减法处理实现代码
Dec 28 Javascript
js完美的div拖拽实例代码
Jan 22 Javascript
javascript根据像素点取位置示例
Jan 27 Javascript
javasctipt如何显示几分钟前、几天前等
Apr 30 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
js监听input输入框值的实时变化实例
Jan 26 Javascript
JS实现左边列表移到到右边列表功能
Mar 28 Javascript
浅谈如何使用webpack构建多页面应用
May 30 Javascript
加速vue组件渲染之性能优化
Apr 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
PHP自动生成月历代码
2006/10/09 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
Python入门篇之列表和元组
2014/10/17 Python
详解使用python crontab设置linux定时任务
2016/12/08 Python
python3.6实现学生信息管理系统
2019/02/21 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
通过Python实现一个简单的html页面
2020/05/16 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
最新奶茶店创业计划书
2014/01/25 职场文书
毕业生自荐书
2014/02/03 职场文书
会计人员演讲稿
2014/09/11 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
大二学年个人总结
2015/03/03 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
电工实训心得体会
2016/01/14 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
python实现简易自习室座位预约系统
2021/06/30 Python