2010-07-25 20 views
7

मेरे पास pre तत्व है जिसमें कुछ HTML कोड हैं। कोड में इसमें विशेष वर्ण हैं, जैसे <, इसलिए यह पृष्ठ को नहीं तोड़ता है।जावास्क्रिप्ट/jQuery - विशेष HTML वर्णों को परिवर्तित करें

तब मेरे पास एक जावास्क्रिप्ट फ़ंक्शन है जो इस पूर्व तत्व की सामग्री प्राप्त करता है, इसे हाइलाइट करता है (कोडमिरर के साथ), और हाइलाइट किए गए टेक्स्ट के साथ तत्व सामग्री को प्रतिस्थापित करता है।

मैं ऐसा करने के लिए $("pre").append(...); का उपयोग कर रहा हूं। समस्या यह है कि हाइलाइटिंग के बाद, स्क्रीन पर < के बजाय मुझे &lt; दिखाई देता है। मैं इन वर्णों को वापस HTML में कैसे परिवर्तित कर सकता हूं?

+1

एचटीएमएल लाने के लिए किस विधि का उपयोग किया जाता है? – David

+0

प्रारंभिक पूर्व की सामग्री? मैं इसे 'var content = code.html() के साथ करता हूं; ' – Alex

उत्तर

10

आपको पूर्व से कोड को पकड़ने के लिए .text() विधि का उपयोग करना चाहिए। इस तरह आप कोड हाइलाइटर को एन्कोडेड प्रतीक नहीं दे रहे हैं।

+0

धन्यवाद, यह काम करता है – Alex

8

मैं नहीं जानता कि क्या अपने html में होता है (और यह क्यों होता है), लेकिन आप jQuerys .text() और .html() डिकोड करने के लिए/जैसे एनकोड एचटीएमएल entitiys उपयोग कर सकते हैं:

एचटीएमएल

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

jQuery :

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

उदाहरण: http://www.jsfiddle.net/fphw3

अद्यतन

जब से तुम उल्लेख किया है कि आप .html() का उपयोग अपने तत्व का मान को पढ़ने के लिए, .text() के लिए एक कॉल के बजाय अपने मुद्दे को हल करना चाहिए।

संबंधित मुद्दे