jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
来源: 阅读:1024 次 日期:2016-07-25 15:40:50
温馨提示: 小编为您整理了“jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结”,方便广大网友查阅!

借助jQuery我们可以轻松地堆DOM元素进行向上、向下遍历以及同级的遍历,本文我们即来整理jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结:

如下图,显示了HTML中的结构树,通过 JQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行遍历。

名单

遍历 - 父级(祖先)

向上遍历DOM数。

通过如下三个方法,我们可以获取父级元素:

parent()

parents()

parentsUntil()

1.JQuery parent()

parent() 方法返回被选元素的直接父元素。

该方法只会向上一级对 DOM 树进行遍历。

<section>

  <h1>文章的<span>标题</span>啦</h1>

  <p>文章的内容内容内容内容内容内容</p>

  <p>结尾部分</p>

</section>

$(document).ready(function () {

  // 通过parent()函数,可获取当前元素的直接父级元素

  var elem = $('span').parent();

  console.log(elem);

});

2.JQuery parents()

parents() 方法返回被选元素的所有父元素。

<section>

  <h1>文章的<span>标题</span>啦</h1>

  <p>文章的内容内容内容内容内容内容</p>

  <p>结尾部分</p>

</section>

$(document).ready(function () {

  // 通过parent()函数,可获取当前元素的所有父级元素

  var elem = $('span').parents();

  console.log(elem); 

});

3.JQuery parentsUntil()

parentsUntil() 方法返回介于两个给定元素之间的所有父级元素

<section>

  <h1>文章的<span>标题</span>啦</h1>

  <p>文章的内容内容内容内容内容内容</p>

  <p>结尾部分</p>

</section>

$(document).ready(function () {

  // 获取span在body标签下的所有父级元素

  var elem = $('span').parentsUntil('body');

  console.log(elem);

});

遍历 - 子级(后代)

向下遍历DOM树。

向下遍历可以使用如下两个函数:

1.children()

2.find()

1.JQuery children()

children() 方法返回被选元素的所有直接子元素。

该方法只会向下一级对 DOM 树进行遍历。

<section>

  <h1>文章的<span>标题</span>啦</h1>

  <p>文章的内容内容内容内容内容内容</p>

  <p>结尾部分</p>

</section>

$(document).ready(function () {

  // 获取section标签下的所有直接子元素

  var elem = $('section').children();

  console.log(elem);

});

2.JQuery find()

find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。

<section>

  <h1>文章的<span>标题</span>啦</h1>

  <p>文章的内容内容内容内容内容内容</p>

  <p>结尾部分</p>

</section>

$(document).ready(function () {

  // 获取section标签下的所有p标签的子元素

  var elem = $('section').find('p');

  console.log(elem);

  // 获取section标签下的所有子元素

  var elems = $('section').find('*');

  console.log(elems);

});

遍历 - 同级(兄弟)

有以下几个方法:

1.sibings()

除自身外,遍历同级的所有元素,修改适用于同级所有元素

2.next()

除自身外,仅下一个元素修改

3.nextAll()

除自身外,修改下面的所有元素

4.nextUntil()

除自身外,对下面的元素进行区间修改

5.prev()

修改上一个元素

6.preAll()

修改位于元素之上的所有元素

7.preUntil()

对位于区间之上的元素进行区间修改

<style>

    .bd *{

      margin:5px;

      padding:3px;

      border:3px solid black;

    }

  </style>

</head>

<body>

<div class="bd">

<p></p>

<h1></h1>

<h2></h2>

<h3></h3>

<h4></h4>

<h5></h5>

<h6></h6>

  </div>

</body>

--------------------------------------------------------------

$(document).ready(function(){

  //$("h1").siblings().css({border:"3px solid red"})

 //$("h4").nextAll().css({border:"4px solid grey"});

  $("h2").prev().css({border:"3px solid green"});

});

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