Supposons que je la structure HTML suivant:Remplacer le contenu dans des éléments sans remplacer HTML
<test>
<div>
This is a test
</div>
<div>
This is another test
<button>
Button test
</button>
</div>
</test>
Maintenant, j'utiliser le code jQuery suivant pour remplacer, par exemple, 'T':
$("test *").each(function(index, value) {
$(this).html($(this).html().replace(new RegExp('t', "ig"), "<b>t</b>"));
});
Cependant, ce résultat dans la structure HTML suivant (ce qui est inattendu, voir l'étiquette <button>
, qui brise le HTML):
<test>
<div>
<b>T</b>his is a <b>t</b>es<b>t</b>
</div>
<div>
<b>T</b>his is ano<b>t</b>her <b>t</b>es<b>t</b>
<bu<b>t</b><b>t</b>on>
Bu<b>t</b><b>t</b>on <b>t</b>es<b>t</b>
</bu<b>t</b><b>t</b>on>
</div>
</test>
Ce que je veux réaliser est:
<test>
<div>
<b>T</b>his is a <b>t</b>es<b>t</b>
</div>
<div>
<b>T</b>his is ano<b>t</b>her <b>t</b>es<b>t</b>
<button>
Bu<b>t</b><b>t</b>on <b>t</b>es<b>t</b>
</button>
</div>
</test>
Fondamentalement, je veux remplacer dans l'élément entier, mais conserver les balises HTML et tous les attributs HTML.
Donc, si je comprends bien, vous ne voulez pas
@Goose, correct mais cela s'applique non seulement à la balise button, mais à toutes les balises html qui correspondent bien sûr à l'expression rationnelle. –