微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

找到距离“最近”的元素

如何解决找到距离“最近”的元素

我想向作为已知 dom 元素的子元素的元素添加一个类,该元素低于我在元素树上的“路径”之后的一个级别。所以在这种情况下,我想定位 -- any-child-class***

除了“start-here-class”和“closest-class”之外,我无法控制任何标记包括不知道目标班级在“最近班级”中的位置或“从这里开始班级”的深度(因此“计数”对我的想法不起作用。

            <animal  type="dog" name="Fido" age="2">Fido is a good  dog.</animal>
            <animal  type="dog" name="Ralph" age="1">Ralph is  brown.</animal>
            <animal  type="dog" name="Brian" age="1">Brian is  Ralph's brother.</animal>
            <animal  type="cat" name="Charlie" age="3">Charlie  likes fish.</animal>
          <animal type="rabit" name="Gulper" age="3">Gulper does  not want to be eaten.</animal>
 <animal  type="turtle" name="Caroline" age="5"> Caroline is a turtle </animal>
    </animals>

JS:

<div class="closest-class"> <div class="any-child-class"> <div class="any-child-class"> <div class="any-child-class***">add a class to ONLY me! <div class="more-levels-class"> <div class="more-levels-class"> <div class="more-levels-class"> <div class="start-here-class"> <div class="any-child-class"> <div class="any-child-class">

如何下​​一级?

解决方法

使用 eq 查找 div 以在 closest 的帮助下添加类。

$(".start-here-class").closest(".closest-class").find("div").eq(3).addClass("customclass");
.customclass {
  background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="closest-class">1
  <div class="any-child-class">1
    <div class="any-child-class">1
      <div class="any-child-class customclass">add a class to ONLY me!
        <div class="more-levels-class">
          <div class="more-levels-class">
            <div class="more-levels-class">
              <div class="start-here-class">
                <div class="any-child-class">
                  <div class="any-child-class">
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

或使用 class 查找 div。

$(".start-here-class").closest(".closest-class").find(".any-child-class1").addClass("customclass");
.customclass {
  background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="closest-class">1
  <div class="any-child-class">1
    <div class="any-child-class">1
      <div class="any-child-class1">add a class to ONLY me!
        <div class="more-levels-class">
          <div class="more-levels-class">
            <div class="more-levels-class">
              <div class="start-here-class">
                <div class="any-child-class">
                  <div class="any-child-class">
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

,

在最接近的地方,您可以指定要应用如下样式的类名。 $(".start-here-class").closest(".closest-class .any-child-class-apply").css('color','red');

$(".start-here-class").closest(".closest-class .any-child-class-apply").css('color','red');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div class="closest-class">
    <div class="any-child-class">test
    <div class="any-child-class">test1
    <div class="any-child-class-apply">add a class to ONLY me!
        <div class="more-levels-class">
            <div class="more-levels-class">
                <div class="more-levels-class">
                    <div class="start-here-class">
                      <div class="any-child-class">
                        <div class="any-child-class">
                        </div></div></div></div></div></div></div></div></div></div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。