Alex
Alex

Reputation: 68078

Javascript / jQuery - convert special html characters

I have a pre element with some html code in it. the code has special characters in it, like <, so it doesn't break the page.

Then I have a javascript function that gets the contents of this pre element, highlights it (with codemirror), and replaces the element contents with the highlighted text.

I'm using $("pre").append(...); to do this. The problem is that after the highlighting, on the screen I see &lt; instead of <. How can I convert these characters back to html?

Upvotes: 7

Views: 27671

Answers (2)

Matthew Manela
Matthew Manela

Reputation: 16762

You should be using the .text() method to grab the code from the pre. This way you are't giving the encoded symbols to the code highlighter.

Upvotes: 10

jAndy
jAndy

Reputation: 236202

I don't know what happens (and why it happens) to your html, but you can use jQuerys .text() and .html() to decode/encode html entitiys like:

HTML

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

jQuery:

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

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

update

Since you mentioned that you use .html() to read the value of your element, a call to .text() instead should solve your issue.

Upvotes: 9

Related Questions