我试图通过使用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 回答
你能尝试一下:
这只是一个想法 .
我在解析XML AJAX返回时有类似的问题,它在FF上工作正常,但在IE上失败了 .
我遇到的问题是您期望的节点之间的额外节点 . IE将带有空格的文本节点添加到XML DOM文件中有空格的XML DOM中 .
我通过更改生成的XML来修复它,因此节点之间没有空格 .
我可能是错的,但请尝试将此作为您的ajax请求 .
$ .ajax({type:“GET”,url:“menu.xml”,dataType:“xml”,success:function(xml){parseXml(xml);}});