Remplacement du contenu d'une balise par un autre avec Javascript DOM

John Smith
WRInaute impliqué
WRInaute impliqué
 
Messages: 526
Inscription: 4 Avr 2007

Remplacement du contenu d'une balise par un autre avec Javas

Message le Mar Jan 13, 2009 22:13

Bonsoir à tous,

Je me tourne à nouveau vers vous et vers votre connaissance infinie de la programmation web pour résoudre un tou piti problème que je rencontre.

Pour faire bref :

J'ai le code suivant :

Code: Tout sélectionner
<div id="test">Bozo le clown</div>

Et je cherche à remplacer le contenu de cette balise par un autre en javascript. Dans ce cas précis, je n'ai aucun problème en utilisant replaceChild() avec un truc du genre :

Code: Tout sélectionner
var noeud_texte = document.createTextNode("Bozo le célèbre clown !");
document.getElementById("test").replaceChild(noeud_texte, document.getElementById("test").firstChild);

Bon maintenant si ma balise est du genre :

Code: Tout sélectionner
<div id="test">Bozo le plus <i>grand</i> des clowns</div>

Le code précédent ne me permet que de remplacer la portion "Bozo le plus " parce que ça fait partie du firstChild. Or je veux remplacer tout le contenu de la balise avec les balises html qu'elle contient.

Comment faire ? :roll:
Merci de m'apporter vos lumières.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8579
Inscription: 23 Nov 2005

Message le Mar Jan 13, 2009 22:39

avec innerHTML non ?


screuscreu
WRInaute impliqué
WRInaute impliqué
 
Messages: 968
Inscription: 14 Jan 2008

Message le Mar Jan 13, 2009 23:06

UsagiYojimbo a écrit:avec innerHTML non ?

exactement !

Code: Tout sélectionner
document.getElementById("test"). innerHTML = 'coucou le nouveau contenu';

John Smith
WRInaute impliqué
WRInaute impliqué
 
Messages: 526
Inscription: 4 Avr 2007

Message le Mer Jan 14, 2009 7:14

Soit ! Mon exemple était mal choisi, en fait je ne veux pas remplacer le contenu de ma balise par un autre texte mais par un autre objet de type textarea, pour par la suite le remplir avec le contenu du texte que j'ai remplacé mais cela je sais faire et ça marche avec Ajax. Le soucis est toujours le même, j'ai mon textarea qui ne remplace qu'une parti du texte à cause de ces balises...

J'ai donc mon objet :

Code: Tout sélectionner
var input = null;
input = document.createElement("textarea");


je passe sur la manière dont j'accède au contenu de la balise et le remplissage du textarea...
Je me retrouve donc toujours avec :

Code: Tout sélectionner
document.getElementById("test").replaceChild(input, document.getElementById("test").firstChild);


Mon textarea est sencé remplacer tout le contenu de la balise mais ne remplace que le premier fils. Dans ce cas précis, innerHTML ne fonctionne pas d'après ce que j'ai pu en voir alors comment faire ?


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Speed Tracer, Google Related Links

  • Indice de densité
    Cet outil vous permet de calculer l'indice de densité d'un mot-clé d'une page web. Il est calculé à la fois pour la balise TITLE, la balise META description et l'ensemble du texte de la page.
  • Calcul du taux de liens profonds
    Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités