使用jQuery将所有元素包装在div中

时间:2011-07-28 09:17:18

标签: jquery

我有一个很奇怪的标记但是,我有3个div:

<div id="div1"></div>

<div id="div4"></div>

<div id="div12"></div>

在这3个div之间可能还有其他元素,但我需要做的是确保有一个div包装这3个div,所以标记最终会像这样:

<div class="wrapped">
    <div id="div1"></div>

    <div id="div4"></div>

    <div id="div12"></div>
</div>

这可以使用jQuery的wrap或wrapAll函数吗?

2 个答案:

答案 0 :(得分:6)

wrapAll()可以实现这一点。您可以使用nextUntil()andSelf()add()来匹配#div1#div12之间的元素,包括:

$("#div1").nextUntil("#div12").andSelf().add("#div12")
          .wrapAll("<div class='wrapped'></div>");

答案 1 :(得分:1)

var wrapper = $('<div></div>').addClass('wrapped');
var parent = $('#div1').parent();
wrapper.append($('#div1, #div4, #div12')).appendTo(parent);

如果您愿意,可以删除包装器var。这是一个jsFiddle:http://jsfiddle.net/DHTd6/