2012-02-27 85 views
0

我使用$ .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

回答

1

它在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