jquery - 在 jquery 中包装非子元素

标签 jquery html dom

我目前有一个以下格式的 html 文档:

<h1>a</h1>
<p>bla</p>
<p>more bla</p>

<h1>b</h1>
<p>different bla</p>

我正在寻找一种方法来包装 <h1>它在 <p> 之后在一个 div 中,所以它看起来像:

<div>
    <h1>a</h1>
    <p>bla</p>
    <p>more bla</p>
</div>

<div>
    <h1>b</h1>
    <p>different bla</p>
</div>

但我使用 wrap 和 wrapAll 来实现这一点一直没有成功。

最佳答案

var tagName = 'h1';
$(tagName).each(function ()
{
    var $this = $(this);
    $this.add($this.nextUntil(tagName)).wrapAll('<div></div>');
});

Demo demo demo demo demo

关于jquery - 在 jquery 中包装非子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5704588/

相关文章:

html - node.js 使用express-hbs 在网页上渲染行

javascript - 根据数据属性选择 DOM 元素

javascript - 在不同元素上淡出 Twitter Bootstrap 弹出窗口

java - 在 JavaScript 更改 URL 后检索其内容

javascript:交换 DOM 节点

javascript - 使用 Javascript while 循环将文本重复输出到 .innerHTML

javascript - 单个页面上有 1000 个 DOM 元素

JQuery 比较选择的同级值

html - 将选择选项放入输入字段中

javascript - 解析 HTML 和 Javascript 中的 JSON 响应