jQuery:如何在div中将标记包装到标记(包括文本节点!)。

我有一个HTML页面,其格式我不能改变,看起来像这样:

Lorem ipsum dolor sit amet
consectetuer adipiscing elit. Aenean commodo ligula eget dolor.

© Aenean massa
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

In enim justo rhoncus ut, imperdiet a, venenatis vitae, justo.
Aliquam 1 Aliquam 2 Aliquam 3

问题:使用上面的例子,我需要包含三个“块”中的每一个, 包括 div中的文本节点 。 您会注意到每个“块”都以元素开头,并以

结尾。

我一直在撞墙试图让它发挥作用。 不幸的是,大多数jQuery函数似乎都“推”了文本节点。 此外,“nextUntil”函数从包装操作中排除第一个选择器,否则看起来它将是完美的解决方案。 一个纯粹的JavaScript解决方案也可以工作,但这个问题似乎就像jQuery本来要解决的那样?

我为任何想要帮助的勇敢的灵魂设立了一个jsFiddle … http://jsfiddle.net/aHZNv/1/

 var container = $('body'); // or what you need var html = container.html().split('

'); container.html(""); for(var i in html) { if($.trim(html[i])) container.append("
"+html[i]+"
"); }

喜欢: http : //jsfiddle.net/Jacek_FH/e5dXe/2/