2010-05-12 36 views
2

我正在讀取html文件中的數據以加載到div中。我遇到的問題是,寫入HTML文件的程序轉換<br />&lt;br /&gt;Jquery - 將ascii字符轉換回HTML

所以當我執行

$('#items').load('/News/list.aspx'); 

它顯示<br />爲我的網頁上一個字符串,而不是讀它作爲一個頁面打破。

我試圖將上述文件讀取到一個變量做&lt;br /&gt;上的字符串替換,但它似乎並沒有工作。

有什麼建議嗎?

+1

替換這兩行代碼您嘗試用什麼替換標記? #it​​ems只是一個div元素嗎? – lunixbochs 2010-05-12 15:16:37

+0

我試圖做.replace('< br/>','
') 是#items只是一個div元素。它只是不能取代。它不會以任何方式影響它。 – sdmiller 2010-05-12 15:22:20

回答

3

如果可能的話,第一步是修改服務器端腳本,這樣HTML首先不會被編碼。

如果不成功,您可以使用ajax方法首先將頁面的數據加載到字符串中。您當前使用的方法只是立即加載文本。

$.ajax({ 
    type: 'GET', 
    url: '/News/list.aspx', 
    dataType: 'text', 
    success: function(response) { 
     response = response.replace(/&lt;/g, '<'); 
     response = response.replace(/&gt;/g, '>'); 
     $('#items').html(response); 
    } 
}); 

這裏我已經替換了個別的尖括號,它會將所有的東西都轉換回HTML。如果您只想要換行符而沒有別的,請用response = response.replace(/&lt;br \/&gt;/g, '<br />');

+0

創建文本文件的程序是一個黑匣子......並且通常會在屁股上造成一種痛苦。你提出的ajax方法似乎只適用於它遇到的第一組< > ...所以它刪除文本文件中的第一個,但沒有其他人......瘋狂 – sdmiller 2010-05-12 15:30:15

+0

@sdmiller:你說得對,'替換'只在使用字符串時替換一次。我已經編輯了使用正則表達式的答案,該正則表達式應該替換每一個出現的元素 – DisgruntledGoat 2010-05-12 16:56:11

+0

是的..它花了我幾分鐘,但我知道了!感謝您的輸入..救了我頭痛我正在撞我的頭! ;) – sdmiller 2010-05-12 18:26:22

0

它是URL編碼<和>標記嗎?

你有沒有嘗試解碼字符串,你回來這樣的事情? :

http://plugins.jquery.com/project/URLEncode

HTH

編輯: 那不是URL編碼所以這是行不通的。

+0

url編碼看起來像這樣:%3cbr%20%2F%3E – lunixbochs 2010-05-12 15:20:22

+0

是的,我同意,但我已經回答之前的例子發佈。將更新我的激光。 – DannyLane 2010-05-12 15:33:21