html - 如果元素没有尾随兄弟,有没有办法只删除它?
问题描述
<h2>
我想知道如果该元素后面没有任何其他元素,是否有一种方法可以仅删除具有特定类的元素内部的元素。例如,如果我只有以下内容:
HTML:
<div class="test">
<h2>Test</h2>
</h2>
我只想删除<h2>Test</h2>
但保持 div 元素存在。
jQuery:
$(".test").each(function() {
if($(this).children().length == 0) {
$(this).remove();
}
});
解决方案
您可以使用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>
推荐阅读
- flutter - 使用颤振中的charts_flutter导航到环形图变得空白
- android - Android 上的 Exchange ActiveSync (EAS) 协议库
- .net - 服务器上无法发送到客户端的文件
- api - 如何在 Postman 中使用 __RequestVerificationToken 标头发出 POST 请求
- c++ - 将 std::string 解析为 ::std::string 以外的其他内容 - 可能吗?
- javascript - 滚动和粘性导航时固定内容
- ios - UserDefault 不应只删除一个键
- r - 使用 lapply 在数据帧列表上循环 which() 函数
- java - Springboot和Spring Security中认证成功后如何授权Rest API调用
- android - 如何在 React Native 中设置 Staging、Development 和 Live 环境