举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
来源: 阅读:962 次 日期:2016-07-25 15:38:50
温馨提示: 小编为您整理了“举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历”,方便广大网友查阅!

一、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 树中沿着同胞元素向后遍历,而不是向前)。

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map