j'essaie de supprimer le texte d'une balise <em>, en conservant une autre balise <em> (et son contenu) à l'intérieur de cette première.
Avec le code c'est plus clair :
<em class="balise_a_vider">
Texte à supprimer avec JS
<em class="balise_a_conserver">
Texte à conserver ainsi que toutes les balises html de ce code !
</em>
</em>
Pour l'instant j'ai le code suivant, mais je ne sais pas si cela vaut grand chose :
$(".balise_a_vider").each(function(i) {
var baliseVide = $(this).html();
var baliseTexte = document.getElementByClass("balise_a_conserver");
$(this).innerHTML(baliseTexte);
});
Normalement je sais comment vider une balise html, mais pas en conservant certains éléments.
Merci à vous pour votre aide.
Laurent Leruste
- Edité par Insigni 16 septembre 2017 à 11:53:08
Insigni.fr - Création de sites web WordPress & SEO à Lille
C'est super merci Camp0us, par contre, j'aurais apparemment dû préciser une chose, car celle-ci semble poser problème :
Il ne s'agit pas d'une seul balise em.balise_a_vider, mais d'une liste d'éléments (div.item), comme sur le code suivant :
<div class="content">
<div class="item">
<em class="balise_a_vider">
Texte à supprimer avec JS
<em class="balise_a_conserver">
Texte à conserver ainsi que toutes les balises html de ce code !
</em>
</em>
</div>
<div class="item">
<em class="balise_a_vider">
Autre texte à supprimer avec JS
<em class="balise_a_conserver">
Texte de l'élément 2 à conserver !
</em>
</em>
</div>
<div class="item">
<em class="balise_a_vider">
Encore un autre texte à supprimer avec JS
<em class="balise_a_conserver">
Texte de l'élément 3 à conserver !
</em>
</em>
</div>
</div><!-- content -->
Du coup, l'opération s'exécute, mais on retrouve alors le même résultat sur toutes ces balises (le résultat de la première de la liste sans doute).
Quel paramètre doit-on indiquer pour exécuter l'opération dans chaque élément, selon leur contenu respective ?
- Edité par Insigni 16 septembre 2017 à 14:42:20
Insigni.fr - Création de sites web WordPress & SEO à Lille
Bonjour WillyKouassi, c'est pas mal du tout ça, merci !
Oui, un em dans un autre c'est pas super, mais ça j'y suis pour rien
Par contre, je perds la balise <em> parente (.balise_a_vider), je peux la réinsérer (sans son contenu) avec ton code, en faisant quelque chose de ce type (mais avec un code qui fonctionne) ? :
Il y a le commentaire "//Déplacement", et c'est vrai que la balise n'est plus à la même place (en fin de .item), c'était pour pouvoir supprimer la première c'est bien ça ?
- Edité par Insigni 16 septembre 2017 à 14:42:08
Insigni.fr - Création de sites web WordPress & SEO à Lille
Ha oui autant pour j'avais mal lu, comme ça alors.
$('.item').each(function () {
var $balise_a_conserver = $('.balise_a_conserver', this).remove(); //On la retire de son parent
var $balise_a_vider = $('.balise_a_vider', this).empty(); //On vide le texte du parent
$balise_a_vider.append($balise_a_conserver); //On réinsère la balise à conserver
});
On peut utiliser .detach au lieu de .remove pour conserver d'éventuels événements sur .balise_a_conserver
Oui c'était pour sa suppression
- Edité par WillyKouassi 16 septembre 2017 à 15:25:03
Insigni.fr - Création de sites web WordPress & SEO à Lille
JS - Vider texte balise sans supp. sa balise fille
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.