2009-03-25 8 views
63

Esiste un modo per modificare il valore di un textNode DOM nel browser Web?Cambia valore textNode

In particolare mi voglio vedere se riesco a cambiamento il nodo esistente, piuttosto che la creazione di uno nuovo.

Per chiarire, ho bisogno di farlo con Javascript. Tutto il testo nel browser è memorizzato in #textNodes che sono figli di altri nodi HTML, ma non possono avere propri nodi figli.

Come indicato di seguito, il contenuto può essere modificato impostando la proprietà nodeValue di questi oggetti.

+0

Esempio di HTML e cosa si desidera modificare? Vuoi farlo usando javascript? – shahkalpesh

risposta

94

se si dispone di uno specifico nodo (di tipo #text) e desideri modificare il suo valore è possibile utilizzare la proprietà nodeValue:

node.nodeValue="new value"; 

Nota:

innerText (e possibilmente textContent) restituirà/imposterà sia il nodo corrente che tutto il testo dei nodi discendenti, e quindi potrebbe non essere il comportamento che vuoi/aspetti.

+1

Sì, nodeValue è perfetto per questo. innerText e textContent differiscono in questo senso: IE (che ha creato innerText) non lo supporta sui nodi #text (dato che non ci sono nodi figli da textificare), mentre textContent era pensato per essere usato su entrambi i nodi #Element e #text. –

+4

C'è anche "data" come sinonimo breve di "nodeValue" su Testo (così come CDATASection e Comment). – bobince

+0

nodeValue è quello di cui avevo bisogno. Per qualche motivo ho pensato che fosse di sola lettura, ma sembra funzionare su FF3 e IE7. Grazie! – levik

-4

Credo innerHTML viene utilizzato per questo ... Poi di nuovo, che non è il W3C approvato ... ma funziona ...

node.innerHTML="new value"; 
+1

+1 per una soluzione di lavoro. nodeValue non mi consente di sostituire il contenuto dell'elemento – petermeissner

+3

Non dovresti * mai * usare 'innerHTML' poiché tratta il codice come testo sia in lettura * che in * scrittura. – John

+2

@petermeissner: questo non risponde alla domanda. Devi impostare 'nodeValue' sul nodo di testo, non il suo elemento genitore. –

Problemi correlati