javascript - jQuery包装所有标题和下面的元素,直到下一个标题
问题描述
我想将包含下面元素的标题包装到一个 div 中,直到下一个标题。
我正在考虑遍历所有标题并获取所有元素,直到最后一个元素。但我不知道如何正确执行它。
<h3>
Login
</h3>
<p>asdadadadasd</p>
<h3>
Register
</h3>
<p><strong>asdsadasdasd</strong></p>
<h4>
test
</h4>
<p>dasdad</p>
<p>asd</p>
<p>asd</p>
<p>asd</p>
<p>asd</p>
<p>asd</p>
<p>as</p>
<p>das</p>
<p>da</p>
<p>sd</p>
<p>asd</p>
<p>asd</p>
<p>as</p>
<p>das</p>
<p>d</p>
<h4>
another-under
</h4>
<p>asdas<br>
das<br>
da<br>
sd<br>
as<br>
das<br>
das<br>
d<br>
asd<br>
asd<br>
as<br>
das<br>
d<br>
asd<br>
as<br>
das</p>
<h4>
app-check-onrange
</h4>
<p><code>dasd</code></p>
<p>asd</p>
<p>as</p>
<p>das</p>
<p>das</p>
<p>d</p>
<p>asd</p>
<p>as</p>
<p>das</p>
<p>d</p>
所以上面的代码将是这样的
<div>
<h3>Login</h3>
<p>...</p>
...othercontent
</div>
<div>
<h3>Register</h3>
<p>...</p>
...othercontent
</div>
<div>
<h4>test</h4>
<p>...</p>
...othercontent
</div>
<div>
<h4>another-under</h4>
<p>...</p>
...othercontent
</div>
解决方案
您可以使用nextUntil()
功能:
$('h3, h4').each(function(index, element) {
$(this).nextUntil('h3, h4').addBack().wrapAll( "<div class='new' />");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h3>
Login
</h3>
<p>asdadadadasd</p>
<h3>
Register
</h3>
<p><strong>asdsadasdasd</strong></p>
<h4>
test
</h4>
<p>dasdad</p>
<p>asd</p>
<p>asd</p>
<p>asd</p>
<p>asd</p>
<p>asd</p>
<p>as</p>
<p>das</p>
<p>da</p>
<p>sd</p>
<p>asd</p>
<p>asd</p>
<p>as</p>
<p>das</p>
<p>d</p>
<h4>
another-under
</h4>
<p>asdas<br>
das<br>
da<br>
sd<br>
as<br>
das<br>
das<br>
d<br>
asd<br>
asd<br>
as<br>
das<br>
d<br>
asd<br>
as<br>
das</p>
<h4>
app-check-onrange
</h4>
<p><code>dasd</code></p>
<p>asd</p>
<p>as</p>
<p>das</p>
<p>das</p>
<p>d</p>
<p>asd</p>
<p>as</p>
<p>das</p>
<p>d</p>
推荐阅读
- android - Android Progaurd 规则包名称正则表达式
- python-3.x - 使用 re.sub 替换字符串中的子字符串?
- c++ - 在哪里可以找到 gtk.lib 文件?
- c# - (C# VB) 我可以动态更改类中所有变量的值吗?
- java - android项目的必要文件未显示在github上
- postgresql - 基于先前值的 postgresql 条件滞后
- docker - 使用 istio 创建 bookinfo 示例时 ReplicaFailure 设置为 FailedCreate
- angular - 如何在角度材料中将我们自己的功能分配给 MatDialog
- php - 将 mysql 转换为 mysqli 谷歌图表的程序方式
- c# - EF Core 5:不要为属性创建索引(使用外键)