举例讲解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 AutoScroller 函数类
May 29 Javascript
javascript Firefox与IE 替换节点的方法
Feb 24 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
Dec 21 Javascript
关于jQuery UI 使用心得及技巧
Oct 10 Javascript
jquery实现图片翻页效果
Dec 23 Javascript
vue组件实例解析
Jan 10 Javascript
关于ES6的六个小特性(二)
Feb 20 Javascript
JS实现的JSON序列化操作简单示例
Jul 02 Javascript
Js和VUE实现跑马灯效果
May 25 Javascript
angular中的post请求处理示例详解
Jun 30 Javascript
vue移动端写的拖拽功能示例代码
Sep 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
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
javascript编程起步(第二课)
2007/01/10 Javascript
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
jQuery自定义添加&quot;$&quot;与解决&quot;$&quot;冲突的方法
2015/01/19 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
Python调用命令行进度条的方法
2015/05/05 Python
介绍一款python类型检查工具pyright(推荐)
2019/07/03 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
Python实现图像去噪方式(中值去噪和均值去噪)
2019/12/18 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
c++工程师面试问题
2013/08/04 面试题
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
财务管理专业毕业生求职信范文
2013/09/21 职场文书
护士自荐信
2013/10/25 职场文书
新闻学专业应届生求职信
2013/11/08 职场文书
雏鹰争章活动总结
2014/05/09 职场文书
一体化教学实施方案
2014/05/10 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
挂靠协议书
2015/01/27 职场文书
舞蹈社团活动总结
2015/05/07 职场文书
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS