2009-05-05 13 views
1

Si j'ai unJavaScript TextNode

var t = document.createTextNode(text) 
parent.appendChild(t); 

Est-il possible de simplement mettre à jour le contenu de t?

Je voudrais changer le texte à l'intérieur du parent sans utiliser removeChild, createTextNode et appendChild. Pourquoi aurais-je besoin de cela au lieu de simplement utiliser innerHTML? Parce que je ne veux pas mettre à jour le contenu de l'élément avec du code HTML et le text peut contenir des caractères spéciaux, tels que < ou & qui doivent être analysés par les méthodes DOM de TextNode.

Merci,
Tom

+0

Voulez-vous afficher du code HTML réel ou simplement du texte brut? – Tomalak

+0

Je veux changer le texte à l'intérieur du parent et le faire apparaître comme du texte brut (c'est-à-dire que le DOM remplace Tom

Répondre

11

Soyez conscient que les nœuds de texte adjacents sont regroupées en une seule (car il n'y a vraiment aucun moyen de distinguer deux nœuds de texte adjacents).

Le contenu d'un nœud de texte peut être mis à jour à l'aide de sa propriété nodeValue (voir MDC).

Étant donné qu'un nœud de texte par sa définition même ne peut pas contenir de balisage, il n'existe aucune propriété innerHTML.

+0

Parfait :) Juste ce que je cherche – Alex

1
parent.innerText = text; 
+0

C'est une alternative, de cause. Je pensais que vous posiez des questions sur les nœuds de texte spécifiquement. – Tomalak

+0

"Je voudrais changer le texte à l'intérieur du parent" n'était probablement pas assez spécifique pour dire que je me fous de comment, je veux juste quelque chose de très simple qui va utiliser le DOM pour échapper HTML. – Tom

+0

Ouais. J'étais trop concentré sur l'exemple de code, je suppose. ;-) – Tomalak