使用jQuery在表中显示XML在IE中不起作用

使用jQuery在表中显示XML在IE中不起作用

问题描述:

我使用$ .get运行XML文件&返回表中的值。使用jQuery在表中显示XML在IE中不起作用

它在Chrome/Firefox/Safari中正常工作,但只管理IE中的表格标题。

http://dl.dropbox.com/u/3755926/jQuery/jQuery_report.html

我一直在阅读有关的事情是如何被称为对IE重要性,而且它不能自动忽略其他浏览器一样的语法错误的命令,但我一直在看它太长&看不到问题。所以任何帮助,将不胜感激。

这是我在Codecademy以外的jQuery上的第一次尝试,所以我对IE修复程序有些遗憾&您将不得不原谅代码质量!

// File: report.js 
function getXML() { 
// Open the xml file 
$.get("Default.ass", {}, function(xml) { 
    // Build an HTML string 
    myHTMLOutput = ''; 
    myHTMLOutput += '<table border="1" cellpadding="0" cellspacing="0">'; 
    myHTMLOutput += '<th colspan="2">Station</th><th>1st Left Turn</th><th>1st Right Turn</th><th>Look Up</th><th>Flare 1</th><th>Flare 2</th><th>Cut Away</th><th>Bergan Release</th><th>Turn Into Wind</th><th>Final Flare</th><th>Direction to Wind at 0ft</th><th>Distance From T</th><th>Entered Safe Zone</th>'; 

    // Run the function for each student tag in the XML file 
    //$('AAR_Assessments',xml).each(function(i) { 
    $(xml).find("student").each(function(i) { 
     xml = $(this); 
     //console.log("Got XML Tag"); 
     id = xml.attr("id"); 
     name = xml.attr("name"); 
     canopy = xml.attr("canopy"); 
     status = xml.attr("status"); 

     var LookUp = xml.find("LookUp"), 
      TurnLeft = xml.find("TurnLeft"), 
      TurnRight = xml.find("TurnRight"), 
      Flare1 = xml.find("Flare1"), 
      Flare2 = xml.find("Flare2"), 
      CutAway = xml.find("CutAway"), 
      Bergan = xml.find("Bergan"), 
      TurnWind = xml.find("TurnWind"), 
      Flare3 = xml.find("Flare3"), 
      HeadWindOffSet = xml.find("HeadWindOffSet"), 
      DistT = xml.find("DistT"); 

     LookUpTime = LookUp.attr("Time"); 
     LookUpAlt = LookUp.attr("Altitude"); 
     LookUpRes = LookUp.attr("Result"); 

     TurnLeftTime = TurnLeft.attr("Time"); 
     TurnLeftAlt = TurnLeft.attr("Altitude"); 
     TurnLeftRes = TurnLeft.attr("Result"); 

     TurnRightTime = TurnRight.attr("Time"); 
     TurnRightAlt = TurnRight.attr("Altitude"); 
     TurnRightRes = TurnRight.attr("Result"); 

     Flare1Time = Flare1.attr("Time"); 
     Flare1Alt = Flare1.attr("Altitude"); 
     Flare1Res = Flare1.attr("Result"); 
     Flare1L = Flare1.attr("Left"); 
     Flare1R = Flare1.attr("Right"); 

     Flare2Time = Flare2.attr("Time"); 
     Flare2Alt = Flare2.attr("Altitude"); 
     Flare2Res = Flare2.attr("Result"); 
     Flare2L = Flare2.attr("Left"); 
     Flare2R = Flare2.attr("Right"); 
     Flare2Error = Flare2.attr("Error"); 

     CutAwayTime = CutAway.attr("Time"); 
     CutAwayAlt = CutAway.attr("Altitude"); 
     CutAwayRes = CutAway.attr("Result"); 

     BerganTime = Bergan.attr("Time"); 
     BerganAlt = Bergan.attr("Altitude"); 
     BerganRes = Bergan.attr("Result"); 

     TurnWindTime = TurnWind.attr("Time"); 
     TurnWindAlt = TurnWind.attr("Altitude"); 
     TurnWindRes = TurnWind.attr("Result"); 

     Flare3Time = Flare3.attr("Time"); 
     Flare3Alt = Flare3.attr("Altitude"); 
     Flare3Res = Flare3.attr("Result"); 
     Flare3L = Flare3.attr("Left"); 
     Flare3R = Flare3.attr("Right"); 
     Flare3Error = Flare3.attr("Error"); 

     HeadWindOffSetDirection = HeadWindOffSet.attr("Direction"); 

     DistTD = DistT.attr("Distance"); 

     SafeZoneResult = xml.find("Safe").attr("Result"); 
     SafeError = xml.find("Safe").attr("Error"); 

     //console.log("Result: " + SafeZoneResult); 

     // Build row HTML data and store in string 
     mydata = BuildStudentHTML(id,name,canopy,status,LookUpTime,LookUpAlt,LookUpRes,TurnLeftTime,TurnLeftAlt,TurnLeftRes,TurnRightTime,TurnRightAlt,TurnRightRes,Flare1Time,Flare1Alt,Flare1Res,Flare1L,Flare1R,Flare2Time,Flare2Alt,Flare2Res,Flare2L,Flare2R,Flare2Error,CutAwayTime,CutAwayAlt,CutAwayRes,BerganTime,BerganAlt,BerganRes,TurnWindTime,TurnWindAlt,TurnWindRes,Flare3Time,Flare3Alt,Flare3Res,Flare3L,Flare3R,Flare3Error,HeadWindOffSetDirection,DistTD,SafeZoneResult,SafeError); 
     myHTMLOutput = myHTMLOutput + mydata; 
    }); 
    myHTMLOutput += '</table>'; 

    // Update the DIV called Content Area with the HTML string 
    //console.log(myHTMLOutput); 
    $("#ContentArea").append(myHTMLOutput); 
}); 
} 

function BuildStudentHTML(id,name,canopy,status,LookUpTime,LookUpAlt,LookUpRes,TurnLeftTime,TurnLeftAlt,TurnLeftRes,TurnRightTime,TurnRightAlt,TurnRightRes,Flare1Time,Flare1Alt,Flare1Res,Flare1L,Flare1R,Flare2Time,Flare2Alt,Flare2Res,Flare2L,Flare2R,Flare2Error,CutAwayTime,CutAwayAlt,CutAwayRes,BerganTime,BerganAlt,BerganRes,TurnWindTime,TurnWindAlt,TurnWindRes,Flare3Time,Flare3Alt,Flare3Res,Flare3L,Flare3R,Flare3Error,HeadWindOffSetDirection,DistTD,SafeZoneResult,SafeError){  

xmldata = new Array(id,name,canopy,status,LookUpTime,LookUpAlt,LookUpRes,TurnLeftTime,TurnLeftAlt,TurnLeftRes,TurnRightTime,TurnRightAlt,TurnRightRes,Flare1Time,Flare1Alt,Flare1Res,Flare1L,Flare1R,Flare2Time,Flare2Alt,Flare2Res,Flare2L,Flare2R,Flare2Error,CutAwayTime,CutAwayAlt,CutAwayRes,BerganTime,BerganAlt,BerganRes,TurnWindTime,TurnWindAlt,TurnWindRes,Flare3Time,Flare3Alt,Flare3Res,Flare3L,Flare3R,Flare3Error,HeadWindOffSetDirection,DistTD,SafeZoneResult,SafeError) 

$.trim(xmldata); 
//$(xmldata).each(function(){$(this).addClass("xmldata");}); 
$.each(xmldata, function(i,elem){ 
    $(elem).addClass('xmldata'); 
}); 

// Build HTML string and return 
output = ''; 
output += '<tr>'; 
output += '<td><span class="id">' + id + '</span></td>'; 
output += '<td>'+ name + '<br />'+' <span class="xmllabel">canopy: </span> '+ canopy + '<br /> <span class="xmllabel">status: </span> ' + status +'</td>'; 
output += '<td align="center">'+ TurnLeftAlt + '<span class="xmllabel">ft</span> '+'<br />' + TurnLeftTime +'</td>'; 
output += '<td align="center">'+ TurnRightAlt + '<span class="xmllabel">ft</span> '+'<br />' + TurnRightTime +'</td>'; 
output += '<td align="center">'+ LookUpAlt + '<span class="xmllabel">ft</span> '+'<br />'+ LookUpTime +'</td>'; 
output += '<td align="center">'+ Flare1Alt + '<span class="xmllabel">ft</span> '+'<br />' + Flare1Time +'<br />' + 'L' + Flare1L + '% R' + Flare1R + '% </td>'; 
output += '<td align="center">'+ Flare2Alt + '<span class="xmllabel">ft</span> '+'<br />' + Flare2Time +'<br />' + 'L' + Flare2L + '% R' + Flare2R + '%</td>'; 
output += '<td align="center">'+ CutAwayAlt + '<span class="xmllabel">ft</span> '+ '<br />' + CutAwayTime +'</td>'; 
output += '<td align="center">'+ BerganAlt + '<span class="xmllabel">ft</span> '+'<br />'+ BerganTime +'</td>'; 
output += '<td align="center">'+ TurnWindAlt + '<span class="xmllabel">ft</span> '+'<br />'+ TurnWindTime +'</td>'; 
output += '<td align="center">'+ Flare3Alt + '<span class="xmllabel">ft</span> '+'<br />' + Flare3Time +'<br />' + 'L' + Flare3L + '% R' + Flare3R + '%</td>'; 
output += '<td align="center">'+ HeadWindOffSetDirection + '<span class="xmllabel">&#176;</span> </td>'; 
output += '<td align="center">'+ DistTD + '<span class="xmllabel">ft</span> '+'</td>'; 
output += '<td align="center" class=" '+ SafeZoneResult + '"></td>'; 
output += '</tr>'; 
return output; 
} 

// Start function when DOM has completely loaded 
$(document).ready(function(){getXML()}); 
+0

这只是奇怪的。当我通过本地主机上的XAMPP加载,但无法使用公共Dropbox URL进行远程工作时,它在IE(v9 Ive)中正常工作。 – 2012-02-27 14:13:47

它在IE9下工作,但不在下面。删除部分

xmldata = new Array(...... 
$.trim(xmldata); 
$.each(xmldata, function(i,elem){.... 

当页面加载时触发此变量时,没有定义任何变量。 “修剪”是一个字符串操作,你不能修剪一个数组,并且你的每个循环遍历一个值的数组(如果它们已被定义)并试图向它们添加类...它们不是DOM元素

+0

啊,是的,我忘记了从我尝试使用CSS对XML进行样式化时删除所有内容。但删除这些行我仍然无法加载它在IE9中。 – 2012-02-27 14:39:39

+0

尝试使用$ .parseXML – charlietfl 2012-02-27 14:46:27

+0

神奇,不知何故,我完全忘记了需要解析任何东西。那是整理它 - 谢谢你:) – 2012-02-27 14:55:51