2010-07-25 48 views
7

Tôi có một phần tử pre với một số mã html trong đó. mã có các ký tự đặc biệt trong đó, chẳng hạn như <, vì vậy mã không phá vỡ trang.Javascript/jQuery - chuyển đổi các ký tự html đặc biệt

Sau đó, tôi có một hàm javascript nhận nội dung của phần tử trước này, làm nổi bật nó (với codemirror) và thay thế nội dung phần tử bằng văn bản được đánh dấu.

Tôi đang sử dụng $("pre").append(...); để thực hiện việc này. Vấn đề là sau khi làm nổi bật, trên màn hình tôi thấy &lt; thay vì <. Làm cách nào để chuyển đổi các ký tự này thành html?

+1

phương pháp nào được sử dụng để tìm nạp html? – David

+0

nội dung của tiền ban đầu? Tôi làm điều này với 'var content = code.html(); ' – Alex

Trả lời

10

Bạn nên sử dụng phương thức .text() để lấy mã từ trước. Bằng cách này, bạn không đưa các ký hiệu được mã hóa cho công cụ đánh dấu mã.

+0

cảm ơn, hoạt động – Alex

8

Tôi không biết điều gì xảy ra (và tại sao nó xảy ra) để html của bạn, nhưng bạn có thể sử dụng jQuerys .text().html() để giải mã/mã hóa entitiys html như:

HTML

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

jQuery :

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

dụ: http://www.jsfiddle.net/fphw3

cập nhật

Vì bạn nói rằng bạn sử dụng .html() để đọc các giá trị của nguyên tố của bạn, một cuộc gọi đến .text() thay vì phải giải quyết vấn đề của bạn.

Các vấn đề liên quan