Si es necesario eliminar el HTML, pero no se sabe si en realidad contiene ninguna etiqueta HTML, no se puede utilizar el método jQuery directamente porque devuelve envoltorio vacío para el texto no HTML.
$('<div>Hello world</div>').text(); //returns "Hello world"
$('Hello world').text(); //returns empty string ""
Debe o bien ajustar el texto en HTML válido:
$('<div>' + 'Hello world' + '</div>').text();
O utilice el método $ .parseHTML() (desde jQuery 1.8) que puede manejar HTML y texto no HTML:
var html = $.parseHTML('Hello world'); //parseHTML return HTMLCollection
var text = $(html).text(); //use $() to get .text() method
Más parseHTML elimina completamente las etiquetas de secuencia de comandos, lo que es útil como protección anti-piratería para las entradas del usuario.
$('<p>Hello world</p><script>console.log(document.cookie)</script>').text();
//returns "Hello worldconsole.log(document.cookie)"
$($.parseHTML('<p>Hello world</p><script>console.log(document.cookie)</script>')).text();
//returns "Hello world"
posible duplicado de [Gaza HTML de texto JavaScript] (http://stackoverflow.com/questions/822452/strip-html-from-text-javascript) – Clive