2009-12-03 23 views

Respuesta

29

innerText (o text() si usa jQuery) no incluye ninguna etiqueta HTML. Así que si usted tenía un div que contenía:

View my <a href="profile.html">profile</a> 

innerText/text() volvería

View my profile 

mientras html() regresarían

View my <a href="profile.html">profile</a> 

Como dcneiner señala html()/text() son propiedades jQuery (y compatible en todos los navegadores), mientras que innerText no está implementado por todos los navegadores (aunque t funciona en las versiones más recientes de IE, Safari y Chrome).

Básicamente querrá usar text() isntead de innerText siempre que sea posible. Consulte dcneiner's post (o jQuery docs) para ver otras cosas que hacen que text() sea increíble.

+5

¿El hecho de que 'innerText' es solo una propiedad de IE y no tiene nada que ver con jQuery significa algo? :) –

+0

Grandes ejemplos Chris. +1 –

+0

Muy buen punto dcneiner, puesto actualizado para reflejar eso :). –

11

La diferencia es que innerText es una propiedad solo de IE en un objeto DOM y html() es una función del objeto jQuery.

Sin embargo, si se comparan text() y html() entonces la diferencia es que text() tiras todo el HTML de los contenidos de un elemento antes de regresar y html() incluye incluye el código HTML.

Además, text() devolverá el texto de todos elementos coincidentes y concatenar juntos:

<span>Hi, </span><span>how are </span><span>you?</span> 

$("span").text(); // returns: Hi, how are you? 

Pero html() sólo devolverá los primeros elementos coincidentes innerHTML propiedad:

$("span").html(); // returns: Hi, 

Una última Lo bueno es que .text() auto escapa todo HTML:

$("span:first").text('<a>Hi</a>'); // writes &lt;a&gt;Hi&lt;/a&gt;