如何将所有下一个元素包装到
How to wrap all next elements until?
我有以下html:
<div class="menuItem">Domů</div>
<div class="menuItem">O nás</div>
<div class="menuItem">Výzkum a vývoj</div>
<div class="submenuItem"><b>Aplikace aktivního gumového prášku</b>
</div>
<div class="submenuItem"><b>Odprašky</b>
</div>
<div class="submenuItem"><b>Guma</b>
</div>
<div class="submenuItem"><b>Zemědělství</b>
</div>
<div class="submenuItem"><b>Potravinářství</b>
</div>
<div class="menuItem">Projekční činnost</div>
<div class="menuItem">Realizace</div>
<div class="submenuItem"><b>realizace podstránka</b>
</div>
<div class="menuItem">Kontakty</div>
我试图实现的是用.menuSet
包裹每个.menuItem
和所有下一个.submenuItem
。不幸的是,下面的js包装了整个片段,而不是上面定义的集合。
<div class="menuItem">Domů</div>
<div class="menuItem">O nás</div>
<div class="menuItem">Výzkum a vývoj</div>
<div class="submenuItem"><b>Aplikace aktivního gumového prášku</b>
</div>
<div class="submenuItem"><b>Odprašky</b>
</div>
<div class="submenuItem"><b>Guma</b>
</div>
<div class="submenuItem"><b>Zemědělství</b>
</div>
<div class="submenuItem"><b>Potravinářství</b>
</div>
<div class="menuItem">Projekční činnost</div>
<div class="menuItem">Realizace</div>
<div class="submenuItem"><b>realizace podstránka</b>
</div>
<div class="menuItem">Kontakty</div>
为了让我的意图更容易理解,下面我发布了想要的结果:
$(".menuItem").nextUntil(".menuItem").andSelf().wrapAll("<div class='menuSet'></div>");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="menuSet">
<div class="menuItem">Domů</div>
</div>
<div class="menuSet">
<div class="menuItem">O nás</div>
</div>
<div class="menuSet">
<div class="menuItem">Výzkum a vývoj</div>
<div class="submenuItem"><b>Aplikace aktivního gumového prášku</b>
</div>
<div class="submenuItem"><b>Odprašky</b>
</div>
<div class="submenuItem"><b>Guma</b>
</div>
<div class="submenuItem"><b>Zemědělství</b>
</div>
<div class="submenuItem"><b>Potravinářství</b>
</div>
</div>
<div class="menuSet">
<div class="menuItem">Projekční činnost</div>
</div>
<div class="menuSet">
<div class="menuItem">Realizace</div>
<div class="submenuItem"><b>realizace podstránka</b>
</div>
</div>
<div class="menuSet">
<div class="menuItem">Kontakty</div>
</div>
当您选择所有具有类的menuItem
,然后从中进行筛选时,wrapAll
将包装您的整个集合。
要解决这个问题,一种方法是使用$.ech()并遍历menuItems,然后包装它们。
$(".menuItem").each(function (index) {
$(this).nextUntil(".menuItem").andSelf().wrapAll("<div class='menuSet'></div>");
});
JSFiddle演示
。相关文章:
- 遍历(获取)元素包装在 标记内
- 如何使用jquery将每4个元素包装在一个
- 标签中
- 如何将所有下一个元素包装到
- Jquery使用Slice将前N个元素包装成一个新元素,并将其余N个元素打包成另一个新元素
- 我正在尝试使用 html 元素包装函数的返回值
- 将所有元素包装到 :nth-child
- 如何使用jQuery将所有HTML元素包装在DIV中,具体取决于这些HTML元素的总高度
- AngularJS :使用角度属性指令将元素包装到自定义模板中
- 设计模式下的浏览器将孤立的 LI 元素包装在 UL - Firefox 和 Chrome 中
- 用 元素包装现有的内联 SVG
元素 - 在遍历数组时每三个元素包装一次
- 停止引导导航中的元素包装
- 创建指令,该指令将每个列表元素包装在引导面板中,并带有删除、重新排序…的控件…
- 如何将所有元素包装在每个容器中
- 为什么使用jQuery元素包装元素要快得多?
- 直接从body标签中删除没有被另一个父HTML元素包装的元素
- 在jQuery效果(例如slideDown)之前确定元素包装器的最终大小
- 如何用html元素包装字符串的一个区域?
- 如何用元素包装/环绕突出显示的文本
- PHP 将每 3 个元素包装在 TR for 表中