2010-07-25 7 views
7

J'ai un pre élément avec du code html dedans. le code a des caractères spéciaux, comme <, de sorte qu'il ne casse pas la page.Javascript/jQuery - convertir des caractères html spéciaux

Ensuite, j'ai une fonction javascript qui obtient le contenu de cet élément pré, le met en surbrillance (avec codemirror), et remplace le contenu de l'élément par le texte en surbrillance. J'utilise $("pre").append(...); pour ce faire. Le problème est qu'après la mise en surbrillance, sur l'écran, je vois &lt; au lieu de <. Comment puis-je convertir ces caractères en HTML?

+1

Quelle méthode est utilisée pour récupérer le code HTML? – David

+0

le contenu du pré initial? Je fais cela avec 'var content = code.html();' – Alex

Répondre

10

Vous devez utiliser la méthode .text() pour récupérer le code à partir du pré-fichier. De cette façon, vous ne donnez pas les symboles codés au surligneur de code.

+0

merci, cela fonctionne – Alex

8

Je ne sais pas ce qui se passe (et pourquoi il arrive) à votre html, mais vous pouvez utiliser jQuerys .text() et .html() à Décode/encode html entitiys comme:

HTML

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

jQuery :

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

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

mise à jour

Puisque vous avez mentionné que vous utilisez .html() pour lire la valeur de votre élément, un appel à .text() devrait plutôt résoudre votre problème.

Questions connexes