在h2和图像标记之间包装所有标记

时间:2015-03-09 08:38:27

标签: jquery html regex

我有正常文章内容的页面。我需要将一些标签包装成div。我可以用wrap()来做,但我怎么能够选择我不确定之间的所有标签。我必须使用正则表达式吗?我很可怕。

所以基本上现在标记是:

    <h1>Title</<h1>
    <p>Text....</p>
    <p>Text....</p>

    <h2>Title 2</h2>
    <p>Text....</p>
    <ul><li>List Text....</li</ul>
    <p>Text....</p>
    <img src="" />

    <h2>Title</<h2>
    <p>Text....</p>
<img src="" />
    <p>Text....</p>

这就是我希望它:

    <h1>Title</<h1>
    <div class="wrap">
        <p>Text....</p>
        <p>Text....</p>
    </div>

        <h2>Title 2</h2>
    <div class="wrap">
        <p>Text....</p>
        <ul><li>List Text....</li</ul>
        <p>Text....</p>
    </div>
        <img src="" />

        <h2>Title</<h2>
    <div class="wrap">
        <p>Text....</p>
</div>
<img src="">
<div class="wrap">
        <p>Text....</p>
    </div>

意味着所有标签之间和另一个标签应该包含在div中。这有可能吗?干杯!

编辑:我的标记第一次没有改动,所以我改了一下。

1 个答案:

答案 0 :(得分:1)

您可以使用nextUntil()

$('h2').each(function(){
    $(this).nextUntil('h2, img').wrapAll('<div class="wrap">')
})

演示:Fiddle