Comment envelopper différents éléments dans une balise div avec jQuery?

J’ai une structure HTML qui ressemble à ceci:

Title

Content

  • Item
  • Item

Content

Title

Content

  • Item
  • Item

Content

En résumé c’est juste quelques en-têtes avec un contenu en dessous d’eux, j’ai juste besoin de tout en dessous des balises d’en-tête dans un div comme ceci:

 
Title

Content

  • Item
  • Item

Content

J’ai essayé d’utiliser la fonction .wrap de jQuery mais pas de chance, car il peut y avoir plusieurs éléments de types sous les balises d’en-tête. J’ai trouvé cette question: jQuery encapsule des ensembles d’éléments dans div qui sont très similaires mais n’ont pas pu s’adapter Est-ce que quelqu’un peut m’aider?

Merci d’avance!

Vous pouvez essayer ceci:

http://jsfiddle.net/GGjXN/1/

 $(function() { $('h5').each(function(i, e) { $(e).nextUntil('h5').wrapAll('
'); }); });

Faire ceci:

 $(document).ready(function () { $('h5').each(function () { $(this).nextUntil('h5').wrapAll('
'); }) })

Essaye ça

 var $div; $("h5").each(function(){ $div = $("
"); if($(this).nextAll("h5").length){ $(this).after($div.append($(this).nextUntil("h5"))); } else{ $(this).after($div.append($(this).siblings())); } });

Je voudrais juste coller une div dans la page après le h5 et y insérer manuellement les éléments.

En supposant que tout est à l’intérieur de quelque chose, comme la balise body (non testée!):

  
Title

Content

  • Item
  • Item

Content

var children = $(document.body).children(), $child $div; for(var x = 0, child; child = children[x++];) { $child = $(child); if($child.is('h5')) { $div = $('
').after($child); } else { $child.appendTo($div); } }