首页 > 解决方案 > 如果元素没有尾随兄弟,有没有办法只删除它?

问题描述

<h2>我想知道如果该元素后面没有任何其他元素,是否有一种方法可以仅删除具有特定类的元素内部的元素。例如,如果我只有以下内容:

HTML:

<div class="test">
    <h2>Test</h2>
</h2>

我只想删除<h2>Test</h2>但保持 div 元素存在。

jQuery:

$(".test").each(function() {
   if($(this).children().length == 0) {
     $(this).remove();
   }
});

标签: htmljquery

解决方案


您可以使用filter()仅选择.test > h2没有以下兄弟的元素,然后删除它们:

$(".test > h2").filter((i, el) => $(el).next().length == 0).remove();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="test">
  <h2>This will be removed</h2>
</div>
<div class="test">
  <p>Lorem ipsum</p>
  <h2>This will also be removed</h2>
</div>
<div class="test">
  <p>Dolor sit</p>
  <h2>This will NOT be removed</h2>
  <p>Amet consectetur</p>
</div>


推荐阅读