我有一个很奇怪的标记但是,我有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函数吗?
答案 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/