J'essaie de vous expliquer mon "problème". Je voudrais savoir quand je sélectionne une partie de texte, si ce texte est "enveloppé" par des balises html, et en fonction les supprimer.Les manipulations de Dom Dom, comment supprimer les tags qui enveloppent ma sélection?
Par exemple, avec cette phrase:
La voiture est <strong>
vert </strong>
, et le bateau est noir
Si je sélectionne « vert » et cliquer sur un bouton, je voudrais vérifier si vert est enveloppé par <strong>
(pour que ce soit OK), et en fonction supprimer <strong>
étiquettes sans supprimer contenant "vert". J'ai essayé de le faire, mais quand j'enlève un enfant et en recrée un, mon nouveau noeud est vide et si j'essaie de mettre du texte directement dans document.createTextNode
, mon nouveau noeud apparaît mais les balises <strong>
restent.
// Bouton CLICK
$('input[type=button].btn_transform').click(function(){
var selObj = window.getSelection();
var parent=selObj.anchorNode.parentNode;
if (parent.nodeName=='STRONG'){
parent.removeChild(selObj.anchorNode);
var theText = document.createTextNode(selObj);
parent.appendChild(theText);
}
});
Je ne suis pas un spécialiste de la manipulation DOM. Pourriez-vous m'aider à résoudre ce problème?
Merci beaucoup pour votre aide précieuse.
Merci pour votre aide. J'ai essayé mais il ne fonctionne pas ou je ne comprends pas bien votre solution .. – sanceray3
Il devrait juste remplacer le contenu avec le tag avec juste le contenu. Que se passe-t-il lorsque vous exécutez ce code? – rosscj2533
Je voudrais garder le même contenu sans balises. ex: « le chat est noir » pour « le chat est noir ». Lorsque je cours votre code sur Firefox, je n'ai rien. Aucun message, aucune erreur sur Firebug. – sanceray3