2010-07-25 13 views
7

Ich habe ein pre Element mit einigen HTML-Code drin. der Code enthält Sonderzeichen wie <, so dass es die Seite nicht bricht.Javascript/jQuery - konvertieren spezielle HTML-Zeichen

Dann habe ich eine JavaScript-Funktion, die den Inhalt dieses Pre-Elements erhält, es markiert (mit Codemirror) und ersetzt den Inhalt des Elements durch den markierten Text.

Ich verwende $("pre").append(...);, um dies zu tun. Das Problem ist, dass nach der Hervorhebung auf dem Bildschirm sehe ich &lt; statt <. Wie kann ich diese Zeichen zurück in HTML konvertieren?

+1

Welche Methode wird zum Abrufen des HTML verwendet? – David

+0

der Inhalt der ursprünglichen pre? Ich mache das mit 'var content = code.html();' – Alex

Antwort

10

Sie sollten die .text() -Methode verwenden, um den Code aus dem Pre zu greifen. Auf diese Weise geben Sie dem Code-Highlighter keine codierten Symbole.

+0

danke, das funktioniert – Alex

8

Ich weiß nicht, was passiert (und warum es passiert), um Ihre HTML, aber Sie können jQuerys verwenden .text() und .html() zu dekodieren/kodieren html entitiys wie:

HTML

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

jQuery :

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

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

Update

Da Sie erwähnt, dass Sie .html() verwenden Sie den Wert Ihres Elements zu lesen, sollte ein Aufruf an .text() stattdessen Ihr Problem lösen.