2011-10-07 23 views
16

Per un dato nodo Text nel DOM, si può usare una di queste proprietà per recuperare il suo testo:Come recuperare il testo di un nodo di testo DOM?

  • textContent
  • dati
  • nodeValue
  • wholeText

Ma quale usare? = Quale è la più affidabile e cross-browser ...

(Se più proprietà sono affidabili al 100% e cross-browser, allora quale sarebbe più appropriato?)


Aggiornamento:

in realtà, wholeText non è un'opzione perché restituisce il testo concatenato del nodo di testo e tutti i nodi di testo fratello ...

risposta

9

nodeValue deve essere è compatibile con più browser. It is part of the original DOM Level 2 specification.

Dai un'occhiata anche allo compatibility table of quirksmode.org (è quello che uso sempre per vedere quali proprietà sono supportate da quali browser).

+1

Se si guarda a quel foglio di quirksmode, si noterà che 'nodeValue' è" incompleto "in IE 5.5 mentre' data' è completamente supportato in quel browser. Non potrebbe essere meno rilevante, ma ancora ... ':' –

+1

'data' fa parte della specifica DOM Level 2 anche sotto l'interfaccia' CharacterData'. * Nessun oggetto DOM corrisponde direttamente a CharacterData, anche se Text e altri ne ereditano l'interfaccia. * (Via: http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID- FF21A306) –

+0

@ ŠimeVidas: Sì, ma se guardi la nota, vedrai che 'nodeValue' non funziona con * attribute nodes * in IE 5.5, quindi va bene per i nodi di testo. Non ero a conoscenza di 'data', per essere onesti;) –

1

ho avuto buoni risultati con nodeValue.

+0

Penso che andrò con 'data' - è più breve ed è definito specificamente per i nodi di testo ... –

+1

La brezza è l'anima dell'arguzia. ;) – canon

+0

Ho avuto buoni risultati con 'data' :). –

0

Quando sei sicuro al 100% che si tratti di un nodo di testo, puoi utilizzarne uno qualsiasi.

+4

Questo non è vero. 'textContent' è stato introdotto solo in IE 9. –

+1

Ok, IE ancora :) –

+0

@AronWoost La mia idea è che uno di questi è il più appropriato, e voglio usarlo. –

Problemi correlati