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

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

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

 

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

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

 $("#div1").nextUntil("#div12").andSelf().add("#div12") .wrapAll("
");
 var wrapper = $('
').addClass('wrapped'); var parent = $('#div1').parent(); wrapper.append($('#div1, #div4, #div12')).appendTo(parent);

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