javascript - jQuery/js 将具有相同类的 div 附近包装成单个 div
问题描述
我有以下结构,我需要div
环绕.item
. 在某些地方有两个项目,在某些地方有一个项目:
<div class="section">
<div class="heading"></div>
<div class="item"></div>
<div class="item"></div>
<div class="heading"></div>
<div class="item"></div>
<div class="item"></div>
<div class="heading"></div>
<div class="item"></div>
<div class="heading"></div>
<div class="item"></div>
<div class="item"></div>
</div>
我需要这种格式的输出:
<div class="section">
<div class="heading"></div>
<div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="heading"></div>
<div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="heading"></div>
<div>
<div class="item"></div>
</div>
<div class="heading"></div>
<div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
我尝试使用以下代码,但它将所有代码包装到单个类中。
var classes = {};
$(".section > div").each(function() {
classes[$(this).attr("class")] = true;
});
for (singleClass in classes) {
$("." + singleClass).wrapAll('<div class="item" />');
}
解决方案
使用和在循环中循环选择彼此相邻的元素.heading
,然后使用包装它们.each()
.item
.nextUntil()
.wrapAll()
$(".heading").each(function(){
$(this).nextUntil(".heading").wrapAll("<div></div>");
});
.heading + div {background: #ccc}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="section">
<div class="heading">heading</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="heading">heading</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="heading">heading</div>
<div class="item">item</div>
<div class="heading">heading</div>
<div class="item">item</div>
<div class="item">item</div>
</div>
推荐阅读
- java - 将项目垂直拖放到 RecyclerView 后,如何在 Firestore 中保留项目位置
- php - 查看购物车问题
- android - 使用插件 cordova-plugin-camera-preview 将控件放置在预览中的图层上方
- typescript - 保证数组/集合具有来自 Typescript 中字符串联合的所有值
- spring-security - MUnit 和 Spring 安全模式的问题
- android - 当其他用户使用我的应用程序(Firebase,android)时,我的列表视图会自动填充
- python - 如何构建 gremlin 查询以添加和删除顶点作为第一部分事务
- reactjs - 导入 css 的 npm 依赖项的 Next.js 错误
- c# - 有没有办法使用 IoC 容器将依赖项注入到帮助程序类?
- javascript - 为什么这个导出的 typescript const 不能从转译和捆绑的代码中导入?