2010-07-28 25 views
7

quiero escapar etiquetas HTML a los nombres de entidad, tomando el texto de un textarea y poner el resultado en una segunda textarea tal que:jQuery Escapar HTML a partir de un área de texto

<mytag> 

convierte

&lt;mytag&gt; 

Estoy usando .html() y .text() yendo y viniendo OK. Mi problema es lidiar con el elemento textarea, que actúa un poco diferente.

Funciona bien si primer lugar el texto en un div:

var htmlStr = $('#textareaInput').val(); //doesn't like .html() .text() ? 
$('#dummy').text(htmlStr); // an object to hold the text that supports .html() 
$('#textareaOutput').val($('#dummy').html()); 

Pero yo quiero hacer algo más sencillo como esto:

var htmlStr = $('#textareaInput').val(); 
$('#textareaOutput').val($(htmlStr).html()); 

Creo que mi problema es que Don No entiendo cómo manipular objetos jQuery, como cadenas, sin manipular elementos DOM, porque ahora estoy usando un div porque tiene el método .html().

¡Cualquier ayuda sería fantástica!

Gracias.

Respuesta

5

tratar

var htmlStr = $('#textareaInput').val(); 
$('#textareaOutput').val($('<div/>').text(htmlStr).html()); 
+0

+1 Usted fue más rápido de lo que era, pero no creo que la segunda solución sería trabajar. Le daría solo el contenido del texto. http://jsfiddle.net/wtXBg/1/ – user113716

+0

¡Guau! Gracias ... no puedo decir que entiendo completamente cómo funciona todavía, ¡pero funciona! (el primero) ¡Gracias! – Wayne

+0

@patric - ¿Puedo preguntarle algo? ... mi puntaje de reputación es un poco incómodo últimamente ... a veces, ¿no agregará los votos al alza? ... ¿Hay algún error aquí en SO? – Reigel

Cuestiones relacionadas