Essayer jQuery wrapAll semble envelopper le contenu deux fois

J’ai un balisage ressemblant à ceci:

     

Je veux que ça finisse comme ça:

  

Je peux donc peupler # composant isolé et les supprimer facilement d’une sélection jQuery.

J’ai essayé ça:

 jQuery("body").children().wrapAll("
") .after("
");

Mais fini avec:

    

Ok, j’ai trouvé pourquoi. Lorsque vous déplacez le contenu du corps vers la DIV, les balises de script, y compris le JS, sont déplacées et le script s’exécute une seconde fois. Maintenant, je ne sais pas pourquoi cela ne se termine pas dans une boucle infinie, mais c’est bon à savoir: ne déplacez jamais les balises de script, vous les ferez recharger.

Je ne sais pas si cela wrapInner votre problème, mais vous devriez utiliser wrapInner :

 jQuery("body").wrapInner("
") .after("
");