2010-07-17 7 views
4

J'ai du contenu séparé par <hr> marqueurs. Ce que j'ai besoin de faire est d'envelopper tout le fabricant débutant et le marqueur de fin.jquery envelopper le contenu entre les éléments

Donné ce balisage:

<hr class=begin> 
some content 
<some tags> 
more content 
<more tags> 
<hr class=end> 

C'est ce que je besoin d'être:

<hr class=begin> 
<div class=content> 
    some content 
    <some tags> 
    more content 
    <more tags> 
</div> 
<hr class=end> 

Je peux le faire avec .nextAll() mais il semble qu'il devrait y avoir une solution plus élégante.

Répondre

5

Vous pouvez utiliser .nextUntil() comme ceci:

$("hr.begin").nextUntil("hr.end").wrapAll("<div class='content'></div>"); 
+0

+1 pour ce code également. – Sarfraz

+0

Je vais accepter votre réponse, car nextUntil() est la bonne alternative à nextAll(), mais aucune des méthodes ne fonctionnera pas pour ce que je veux faire parce que j'ai aussi besoin d'envelopper le texte libre qui se trouve entre les marqueurs. Je vais re-poser la question avec ce particulier. THX! – user191688

1

Vous cherchez probablement .nextUntil() méthode de jQuery.

Obtenez tous les frères et sœurs suivants de chaque élément jusqu'à, mais non l'élément adapté par le sélecteur.

Questions connexes