2012-03-15 19 views
13

He creado un enlace de correo electrónico que rellena automáticamente la información necesaria en el cuerpo. Pero cuando lo hago .innerHTML recibo un poco más de lo que esperaba.innerHTML sin el html, solo texto

quiero "de marzo de 2012: 12-16"

Lo que obtengo <B>March, 2012</B>: <FONT color=blue>12</FONT> - <FONT color=blue>16</FONT>

¿Hay una manera de conseguir el innerHTML sin las etiquetas HTML?

.value = undefined 
.text = undefined 
+0

Creo que hay una propiedad innerText ... –

+0

'textContent' ... –

+1

Eche un vistazo a http://stackoverflow.com/questions/822452/strip- html-from-text-javascript –

Respuesta

27

Quiere .textContent en todas las versiones anteriores excepto IE, y .innerText en IE (< 9).

lo tanto, tratar:

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

EDIT: O bien, sólo tiene que utilizar mucho más limpio de GGG string = (node.innerText || node.textContent), ya que es undefined Falsy.

+2

what the ... '(node.innerText || node.textContent)'. Aunque no son exactamente lo mismo ... –

+0

¿Quién es 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 (Consulte también [If I cambiar mi nombre para mostrar, ¿se reflejará el cambio en los comentarios?] (http://meta.stackexchange.com/questions/59884/if-i-change-my-display-name-will-the-change-reflect-in- comentarios)) – apsillers

4

En el navegador que soporte el estándar, se puede utilizar en lugar de textContentinnerHTML. De lo contrario, puede recorrer los siguientes nodos y concatenarlos, o utilizar una biblioteca como jQuery que abstraiga este enfoque para usted.

+0

La compañía está utilizando una versión anterior de IE y textContent devuelve indefinido. innerText funcionó bien sin embargo. ¿Hay alguna razón por la que no debería usar innerText? – cphilpot

+0

'innerText' no es exactamente' textContent'. Si tiene que trabajar en un entorno solo de IE, está bien, no veo ningún daño en su uso, simplemente no es estándar. Aquí los refs: http://msdn.microsoft.com/en-us/library/ms533899(v=vs.85).aspx – ZER0

0

Si ya está utilizando jQuery, puede utilizar .text():

http://jsfiddle.net/vkgYR/

si no lo está utilizando, sin embargo, sólo debe ir con los otros comentarios, ya que sería tonto cargar todo jQuery solo para el método .text()

Cuestiones relacionadas