我正在使用jQuery使用$.ajax()
在我的页面上解析XML。我的代码块在下面,我可以让它显示在XML文件上显示每个结果,但是我遇到了麻烦,因为每个部分可以有多于一个<course>
并且我试图打印属于ONE的所有成绩学生。这是XML的一个例子。
<student num="505">
<name gender="male">Al Einstein</name>
<course cid="1">60</course>
<course cid="2">60</course>
<course cid="3">40</course>
<course cid="4">55</course>
<comments>Lucky if he makes it to lab, hopeless.</comments>
</student>
在哪里看到<course>
我试图在每门课程中打印结果以打印每位学生的成绩。关于我会做什么的任何想法?
$.ajax({
type: "GET",
url: "final_exam.xml",
dataType: "xml",
success: function(xml) {
var student_list = $('#student-list');
$(xml).find('student').each(function(){
$(xml).find('course').each(function(){
gradeArray = $(this).text();
console.log(gradeArray);
});
var name = $(this).find("name").text();
var grade = $(this).find("course").text();
var cid = $(this).find("course").attr("cid");
//console.log(cid);
student_list.append("<tr><td>"+name+"</td><td>"+cid+"</td><td>"+grade+"</td></tr>");
});
}
});
答案 0 :(得分:1)
在这一行:$(xml).find('course').each(function(){
您的意思是find
xml
还是$(this).find
?
答案 1 :(得分:0)
很确定你在寻找这个。我所做的只是在数组中捕获成绩,并在最后通过逗号加入它们。我也没有测试(邪恶)。
$.ajax({
type: "GET",
url: "final_exam.xml",
dataType: "xml",
success: function(xml) {
var student_list = $('#student-list');
$(xml).find("student").each(function(){
var name = $(this).find("name").text();
var grades = [];
var cid = $(this).find("course").attr("cid");
$(this).find('course').each(function(){
var grade = $(this).text();
console.log(gradeArray);
grades[ grades.length ] = grade
});
//console.log(cid);
student_list.append("<tr><td>"+name+"</td><td>"+cid+"</td><td>"+grades.join(', ')+"</td></tr>");
});
}
});