2012-03-15 12 views
13

Ho creato un collegamento e-mail che inserisce automaticamente le informazioni necessarie nel corpo. Ma quando faccio .innerHTML ottengo un po 'più di quanto ho voluto.innerHTML senza html, solo testo

voglio "Marzo 2012: 12-16"

quello che ottengo <B>March, 2012</B>: <FONT color=blue>12</FONT> - <FONT color=blue>16</FONT>

c'è un modo per ottenere l'innerHTML senza i tag html?

.value = undefined 
.text = undefined 
+0

Penso che ci sia una proprietà innerText ... –

+0

'textContent' ... –

+1

Dai un'occhiata a http://stackoverflow.com/questions/822452/strip- html-from-text-javascript –

risposta

27

Si desidera .textContent in IE precedente, e .innerText in IE (< 9).

Quindi, cercare:

string = (node.textContent===undefined) ? node.innerText : node.textContent;

EDIT: Oppure, basta usare molto più pulito del GGG string = (node.innerText || node.textContent), dal momento che è undefined falsy.

+2

what the ... '(node.innerText || node.textContent)'. Anche se non sono esattamente uguali ... –

+0

Chi è GGG? Alter ego? – Stanislav

+0

@Stanislav http://web.archive.org/web/20120927230726/http://stackoverflow.com/questions/9727111/innerhtml-without-the-html-just-text#answer-9727182 (Vedi anche [If I cambia il mio nome visualizzato, la modifica si rifletterà nei commenti?] (http://meta.stackexchange.com/questions/59884/if-i-change-my-display-name-will-the-change-reflect-in- Commenti)) – apsillers

4

Nel browser che supporti lo standard, è possibile utilizzare al posto di textContentinnerHTML. Altrimenti puoi passare in rassegna i nodi successivi e concatenarli, o usare una libreria come jQuery che astragga questo approccio per te.

+0

L'azienda utilizza una versione precedente di IE e textContent restituisce undefined. innerText ha funzionato bene però. C'è qualche ragione per cui non dovrei usare innerText? – cphilpot

+0

'innerText' non è esattamente' textContent'. Se devi lavorare in un ambiente solo IE, va bene non vedo alcun danno nell'usarlo - non è standard. Ecco i riferimenti: http://msdn.microsoft.com/en-us/library/ms533899(v=vs.85).aspx – ZER0

0

Se si sta già utilizzando jQuery, è possibile utilizzare .text():

http://jsfiddle.net/vkgYR/

se non lo si utilizza, però, si deve solo andare con gli altri commenti in quanto sarebbe sciocco carica tutto jQuery solo per il metodo .text()

Problemi correlati