2009-04-08 136 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);} });

相关问题