2011-12-31 94 views
3
$.get("progress.txt", null, function(data_aj){ 
     if(data_aj.substr(0,14) == "<!-- MSG:: -->"){ 
      $("#list").html("<li>"+data_aj+"</li>"); 
      window.clearTimeout(timeOutId); 
     }else{ 
      $("#list").html(data_aj); 
     } 
    }); 

我真的已經嘗試了一切,但無法弄清楚什麼是錯的。如果我使用alert(data_aj);它提供了所需的輸出,並且工作正常,但HTML(data_aj)不會使用.html()加載到<ul>元素#list中。誰能告訴我爲什麼?爲什麼.html()方法不會在元素中加載數據?

+1

'data_aj'的價值是什麼? – 2011-12-31 12:27:42

+1

你可以包含一段html代碼嗎?你確定'#list'是正確的ID嗎? – 2011-12-31 12:28:08

+0

你的html看起來如何? – lfxgroove 2011-12-31 12:29:55

回答

1

您是否曾嘗試將您的代碼放入文檔中,因爲您的警報會很好地啓動,但是如果您的dom未加載,那麼您無法將其附加到它。還可以使用.append()的列表不是HTML

$(document).ready(function() { 

$.get("progress.txt", null, function(data_aj){ 
     if(data_aj.substr(0,14) == "<!-- MSG:: -->"){ 
      $("#list").append("<li>"+data_aj+"</li>"); 
      window.clearTimeout(timeOutId); 
     }else{ 
      $("#list").append(data_aj); 
     } 
    }); 
}); 
+0

那麼,情況並非如此。我的代碼在JS函數中。該功能在用戶點擊某些內容時觸發。 – Shubham 2011-12-31 12:33:37

+0

酷還試用第二點使用追加不html作爲其名單 – 2011-12-31 12:36:01

1

聽好了......

$.get()$.ajax()的簡寫。

所以,當你做到這一點

$.get(uri, function(data){ 
    //Your functionality 
}); 

你真的這樣做

$.ajax({ 
    url: uri, 
    type: "GET", 
    success: function(data) { 
     //Your functionality 
    } 
}); 

默認情況下此返回頁面HTML。或者,默認情況下,它首先檢查頁面上的MIME類型,如果找不到,則返回HTML。當你要求一個.txt文件時,它會將其解釋爲一個簡單的文本文件。如果你想告訴它你想要返回什麼(HTML),你可以在服務器頁面上使用MIME類型,或者你可以使用$.getJSON()。因此

一個簡單的方法來解決這個問題是這樣做的:

$.get(uri, function(data) { 
    //Your functionality 
}, 
"html"); 

哪一樣做:

$.ajax({ 
    url: uri, 
    type: "GET", 
    dataType: "HTML", 
    success: function(data) { 
     //Your functionality 
    } 
}); 

此外,它是不使用html(),因爲要更換一個好主意每當你想添加一個額外的新節點時,你的ul元素裏面現有的html。

嘗試利用的:

$('#list').append('<li>' + data_aj + '</li>'); 

基本上你可以追加<li><ul>本身。

最後請確保您的DOM已經通過將所有的jQuery代碼到

$(document).ready(function() { 
    //Your code... 
}); 

加載否則,如果你的HTML沒有滿載的是,你的列表可能還不那麼有沒有辦法讓存在JQuery將一些值放入未知HTML中。

+0

這是廢話http://jsfiddle.net/xr5wZ/'html()'將工作於'ul'元素。返回的MIME類型的請求將是'text/plain',因爲它來自txt文件 - 這就是問題! – 2011-12-31 12:35:12

+0

'getJSON'會導致解析錯誤,我不知道你爲什麼建議使用它。我很高興你編輯了你的原始答案,但我的更正雖然。 – 2011-12-31 13:06:33

+0

@PhilParsons我不知道你爲什麼要激怒我。我提出getJSON()的原因是因爲它在其他情況下可能很有用,比如當你需要獲取返回的HTML主體的一部分時。如果你花時間閱讀我的答案,這顯然不是解決他的問題的方法。 – Jules 2011-12-31 13:59:09

相關問題