2009-03-25 40 views
63

¿Hay alguna manera de cambiar el valor de un DOM textNode en el navegador web?Cambiar el valor de textNode

que específicamente quieren ver si puedo cambio el nodo existente, en lugar de crear una nueva.

Para aclarar, necesito hacer esto con Javascript. Todo el texto en el navegador se almacena en #textNodes que son elementos secundarios de otros nodos HTML, pero no pueden tener nodos secundarios propios.

Como se explica a continuación, el contenido se puede cambiar configurando la propiedad nodeValue de estos objetos.

+0

Ejemplo de HTML y lo que te gustaría cambiar? ¿Quieres hacerlo usando javascript? – shahkalpesh

Respuesta

94

Si usted tiene un nodo específico (de tipo #text) y desea cambiar su valor se puede utilizar la propiedad nodeValue:

node.nodeValue="new value"; 

Nota:

innerText (y posiblemente textContent) devolverá/establecerá tanto el nodo actual como todos los nodos descendientes, y puede que no sea el comportamiento que desea/espera.

+1

Sí, nodeValue es perfecto para esto. innerText y textContent difieren en este aspecto: IE (que creó innerText) no lo admite en los nodos #text (ya que no hay nodos secundarios para textificar), mientras que textContent estaba destinado a ser utilizado en los nodos #Element AND #text. –

+4

También hay 'datos' como un breve sinónimo de 'nodeValue' en Text (así como también CDATASection and Comment). – bobince

+0

nodeValue es el que necesitaba. Por alguna razón, pensé que era de solo lectura, pero parece funcionar en FF3 e IE7. ¡Gracias! – levik

-4

Creo innerHTML se utiliza para este ... Por otra parte, es decir, no W3C aprobado ... pero funciona ...

node.innerHTML="new value"; 
+1

+1 para una solución de trabajo. nodeValue no me permite reemplazar el contenido del elemento – petermeissner

+3

Debe * nunca * usar 'innerHTML' ya que trata el código como texto tanto en lectura * como * escrita. – John

+2

@petermeissner: Esto no responde la pregunta. Debe establecer 'nodeValue' en el nodo de texto, no su elemento principal. –

Cuestiones relacionadas