首页 文章

jQuery无法在Internet Explorer中运行

提问于
浏览
0

我试图通过使用jQuery读取XML文件来创建动态菜单 . 我开发了代码,它在Firefox 3和Chrome中运行良好,但它不适用于Internet Explorer 7/8 .

我在下面发布我的代码 . 它有什么关系?

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>

3 回答

  • 0

    你能尝试一下:

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

    这只是一个想法 .

  • 1

    我在解析XML AJAX返回时有类似的问题,它在FF上工作正常,但在IE上失败了 .

    我遇到的问题是您期望的节点之间的额外节点 . IE将带有空格的文本节点添加到XML DOM文件中有空格的XML DOM中 .

    我通过更改生成的XML来修复它,因此节点之间没有空格 .

  • 0

    我可能是错的,但请尝试将此作为您的ajax请求 .

    $ .ajax({type:“GET”,url:“menu.xml”,dataType:“xml”,success:function(xml){parseXml(xml);}});

相关问题