2010-07-25 42 views
7

Tengo un elemento pre con algún código html en él. el código tiene caracteres especiales, como <, por lo que no interrumpe la página.Javascript/jQuery - convertir caracteres html especiales

Luego tengo una función javascript que obtiene el contenido de este pre elemento, lo resalta (con codemirror) y reemplaza el contenido del elemento con el texto resaltado.

Estoy usando $("pre").append(...); para hacer esto. El problema es que después del resaltado, en la pantalla veo &lt; en lugar de <. ¿Cómo puedo convertir estos caracteres a html?

+1

¿Qué método se utiliza para recuperar el html? – David

+0

el contenido del pre inicial? Lo hago con 'var content = code.html();' – Alex

Respuesta

10

Debe utilizar el método .text() para tomar el código del pre. De esta forma, no está dando los símbolos codificados al marcador de código.

+0

gracias, eso funciona – Alex

8

No sé lo que pasa (y por qué ocurre) a su html, pero se puede usar jQuerys .text() y .html() para decodificar/codificar entitiys HTML como:

HTML

<div id="test">&lt;&lt;</div> 

jQuery :

var t = $('#test'); 
t.html(t.text()); // will print "<<" 

ejemplo: http://www.jsfiddle.net/fphw3

actualización

Ya que menciona que utilice .html() para leer el valor de su elemento, una llamada a .text() lugar debería resolver su problema.

Cuestiones relacionadas