$.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
中。谁能告诉我为什么?
答案 0 :(得分:1)
您是否已尝试将代码放入文档中,因为您的警报会正常启动但如果您的dom未加载则无法附加到该文件中。对于不是html的列表也使用.append()
$(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);
}
});
});
答案 1 :(得分:1)
倾听......
所以当你这样做时
$.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>
本身。
最后通过将所有JQuery代码放入
来确保已加载dom$(document).ready(function() {
//Your code...
});
否则,如果您的HTML尚未完全加载,您的列表可能还不存在,因此JQuery无法将某些值放入未显示的HTML中。