Bonjour,
Voici le formatage de la portion de page que je souhaite modifier :
Je souhaiterais dynamiquement ajouter des balises, des class et id à ces éléments de façon à obtenir le formatage suivant :
Cette structure peut se répéter plusieurs fois (dans les div de class .tabs). Le jQuery que j'utilise et qui ne fonctionne pas :
Le résultat (pas souhaité) que j'obtiens :
Comme vous pouvez le constater en insérant après le h2 <div id="content_03">, il ajoute automatiquement le </div>. Le </div> que je souhaitait ajouter avant le h2 (s'il n'est pas le premier) n'apparait pas.
Merci d'avance pour votre aide.
Modifié par jojaba (17 Sep 2016 - 10:09)
Voici le formatage de la portion de page que je souhaite modifier :
<div class="tabs">
<h2>Titre</h2>
<h3>Sous-titre</h3>
<p>blablabla</p>
<ul>
<li>blablabla</li>
<li>blablabla</li>
</ul>
<h2>Titre 2</h2>
<p>blablabla</p>
<p>blablabla</p>
<h2>Titre 3</h2>
<ul>
<li>blablabla</li>
<li>blablabla</li>
</ul>
</div><!-- end .tabs -->
Je souhaiterais dynamiquement ajouter des balises, des class et id à ces éléments de façon à obtenir le formatage suivant :
<div class="tabs">
<h2 class="h2_01">Titre</h2>
<div id="content_01">
<h3>Sous-titre</h3>
<p>blablabla</p>
<ul>
<li>blablabla</li>
<li>blablabla</li>
</ul>
</div>
<h2 class="h2_02">Titre 2</h2>
<div id="content_02">
<p>blablabla</p>
<p>blablabla</p>
</div>
<h2 class="h2_03">Titre 3</h2>
<div id="content_03">
<ul>
<li>blablabla</li>
<li>blablabla</li>
</ul>
</div>
</div><!-- end .tabs -->
Cette structure peut se répéter plusieurs fois (dans les div de class .tabs). Le jQuery que j'utilise et qui ne fonctionne pas :
if (jQuery(".tabs").length > 0) {
jQuery(".tabs").each(function(tabInd) {
/* content wrapping with id and class to h2 */
jQuery(".tabs h2").after(function(contInd) {
jQuery(this).addClass('h2_' + tabInd + contInd);
return '<div id="content_' + tabInd + contInd + '">';
});
jQuery(".tabs h2").before(function(contInd) {
if(contInd != 0) {
return '</div>';
}
});
});
} // end if tabs exists
Le résultat (pas souhaité) que j'obtiens :
<div class="tabs">
<h2 class="h2_01">Titre</h2>
<div id="content_01"></div>
<h3>Sous-titre</h3>
<p>blablabla</p>
<ul>
<li>blablabla</li>
<li>blablabla</li>
</ul>
<h2 class="h2_02">Titre 2</h2>
<div id="content_02"></div>
<p>blablabla</p>
<p>blablabla</p>
<h2 class="h2_03">Titre 3</h2>
<div id="content_03"></div>
<ul>
<li>blablabla</li>
<li>blablabla</li>
</ul>
</div><!-- end .tabs -->
Comme vous pouvez le constater en insérant après le h2 <div id="content_03">, il ajoute automatiquement le </div>. Le </div> que je souhaitait ajouter avant le h2 (s'il n'est pas le premier) n'apparait pas.
Merci d'avance pour votre aide.
Modifié par jojaba (17 Sep 2016 - 10:09)