我有这个ajax调用来加载xml中的数据选择。
我没有得到任何JS错误,它执行之前,完成不起作用,我想我没有正确调用数据。
关于我在完整的函数循环中做错了什么的想法?
$.ajax({
type: "GET",
url: "xml/classes.xml",
dataType: "XML",
beforeSend: function(){
$('#classContainer').append("<p>Loading</p>");},
complete: function() {
$(this).find('monday').each(function(){
var $classdate = $(this);
var title = $classdate.find("class").attr('title');
var level = $classdate.find("class").attr('classLevel');
var time = $classdate.find("time").text();
var duration = $classdate.find("time").attr("duration");
var hourofday = $classdate.find("time").attr("hourofday");
var location = $classdate.find("location").text();
var Monhtml = '<div class="classBlock">';
Monhtml += '<p class="title">' + title + '<span class="loadingPic" alt="Loading" /> ' + ' </p>';
Monhtml += '<p class="infoBar"> <strong>Time:</strong>' + time + '<span class="hour">'+ hourofday +'</span><br>'+'<strong>Duration:</strong>' + duration +' Minutes <br>' + '<strong>Location:</strong>' + location + '<br><strong>Instructor:</strong> </p>';
Monhtml += '<p class="description"> <span class="level">' + level + '</span></p>' ;
Monhtml += '</div>';
$('#classContainer').append($(Monhtml));
});
}
});
});
将完成更改为:
success: function(xml) {
$(xml)
它加载了,差异是什么?
答案 0 :(得分:1)
您没有在完整功能中提供响应。试试这个:
$.ajax({
type: "GET",
url: "xml/classes.xml",
dataType: "XML",
beforeSend: function(){
$('#classContainer').append("<p>Loading</p>");},
complete: function(resp) {
$(resp).find('monday').each(function(){
var $classdate = $(this);
var title = $classdate.find("class").attr('title');
var level = $classdate.find("class").attr('classLevel');
var time = $classdate.find("time").text();
var duration = $classdate.find("time").attr("duration");
var hourofday = $classdate.find("time").attr("hourofday");
var location = $classdate.find("location").text();
var Monhtml = '<div class="classBlock">';
Monhtml += '<p class="title">' + title + '<span class="loadingPic" alt="Loading" /> ' + ' </p>';
Monhtml += '<p class="infoBar"> <strong>Time:</strong>' + time + '<span class="hour">'+ hourofday +'</span><br>'+'<strong>Duration:</strong>' + duration +' Minutes <br>' + '<strong>Location:</strong>' + location + '<br><strong>Instructor:</strong> </p>';
Monhtml += '<p class="description"> <span class="level">' + level + '</span></p>' ;
Monhtml += '</div>';
$('#classContainer').append($(Monhtml));
});
}
});
});
答案 1 :(得分:0)
完成回调传递了两个参数。
来自Jquery文档
请求完成时要调用的函数(执行成功和错误回调之后)。该函数传递两个参数:XMLHttpRequest对象和描述请求成功类型的字符串。这是一个Ajax事件。
function(XMLHttpRequest,textStatus){ 这个; //此ajax请求的选项 }