2009-04-08 147 views
0

我想通過使用jQuery讀取XML文件來創建動態菜單。我開發了代碼,並且它在Firefox 3和Chrome中運行正常,但它對Internet Explorer 7/8不起作用。jQuery不能在Internet Explorer中工作

我在下面發佈我的代碼。它有什麼問題?

var menu =""; 
    $(document).ready(function() 
    { 
     $.ajax({ 
      type: "GET", 
      url: "menu.xml", 
      dataType: "xml", 
      success: parseXml 
     }); 
    }); 

    function parseXml(xml) 
    { 
     $(xml).find('link').each(function(x){ 
      var link = $(this); 
      var title = link.attr("name"); 

      menu += "<div class='AccordionPanel AccordionPanelClosed'>"; 
      menu += "<div class='AccordionPanelTab'><span></span>"; 
      menu += "<a href='javascript:;'>"+title+"</a></div>"; 

      link.find("inLink").each(function(z){ 
       var intitle = $(this).attr("name"); 
       menu += "<div class='AccordionPanelContent'>"; 
       menu += "<ul><li>"; 
       menu += "<a href='"+$(this).attr("ref")+"'>"+intitle+"</a>"; 
       menu += "</li></ul></div>"; 
      }); 
      menu += "</div>"; 
     }); 

     $("#LeftMenu").append(menu); 
    } 

的XML文件具有以下結構

<links> 
     <link name="Reception" ref="index.html"> 
      <inLink name="Registration" ref="registration.html"/> 
      <inLink name="Inquiry" ref="#"/> 
     </link> 
     <link name="Records" ref="#"> 
      <inLink name="Records" ref="#"/> 
      <inLink name="Records2" ref="#"/> 
     </link> 
    </links> 
+0

也許發佈你得到的特定錯誤? – TomHastjarjanto 2009-04-08 13:01:17

+0

IE中究竟發生了什麼? – Aziz 2009-04-08 13:01:39

回答

0

你能嘗試:

$("#LeftMenu").append($(menu)); 

這雖然只是一個想法。

1

我有一個解析XML AJAX返回類似的問題,它在FF上工作正常,但在IE上失敗。

我遇到的問題是您所期望的節點之間的額外節點。 IE將文本節點和空白添加到XML文件中有空格的XML DOM中。

我通過更改生成的XML來修復它,所以節點之間沒有空白。

0

我可能是錯的,但試試這個代替你的ajax請求。

$阿賈克斯({ 類型: 「GET」, 網址: 「menu.xml文件」, 數據類型: 「XML」, 成功:功能(XML){parseXml(XML);} });

相關問題