循环遍历doc中某个元素下的所有元素>然后添加类

时间:2018-11-09 22:40:21

标签: jquery

我想简单地检测并遍历文档中某个元素之下的所有元素。然后,我想向某个元素下方存在的所有元素添加一个类。

我从此开始,但意识到这完全是错误的。

$('div').addClass("below-fold").after('#BelowThisElm');

否,没有唯一的父元素;如果有的话,我不会尝试做这样的事情,我只会addClass

2 个答案:

答案 0 :(得分:0)

.after()用于在所选元素之后添加内容,而不用于选择内容。使用与ID下的所有DIV匹配的选择器。

$("#BelowThisElm div").addClass("below-fold");

这是递归操作,它与#BelowThisElm下方的DIV及其下方的DIV相匹配,依此类推。如果您只需要下面的内容,请使用

$("#BelowThisElm > div").addClass("below-fold");

答案 1 :(得分:0)

首先,我们获取元素的siblings。然后在列表中确定其index。然后在兄弟姐妹之间循环,如果key大于index,则开始添加类。

$.each( $("#BelowThisElm").siblings(), function( key, value ) {
  if(key < $("#BelowThisElm").index()) {
      return;
  }
  $(value).addClass("below-fold");
});
.below-fold {
    color:#FF00FF;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Element -2</div>
<div>Element -1</div>
<div>Element 0</div>
<div id="BelowThisElm">Below this element</div>
<div>Element 1</div>
<div>Element 2</div>
<div>Element 3</div>
<div>Element 4</div>
<div>Element 5</div>