2016-06-13 46 views
0

我正在使用我的新PC构建网站,并且无法获取具有特定属性的XML标记以显示在我的HTML <p>元素中。我的XML看起来是这样的:无法获取XML数据以使用jQuery在HTML上显示

<?xml version="2016.6" encoding="UTF-8"?> 
<parts> 
    ... 
    <HDDs> 
    <hdd id="1"> 
     <name>DiskOne</name> 
     <price>50</price> 
    </hdd> 
    <hdd id="2"> 
     <name>DiskTwo</name> 
     <price>40</price> 
    </hdd> 
    </HDDs> 
    ... 
</parts> 

我想找到标签<hdd>在上面的XML属性id="2"并显示其孩子的HTML元素<p>,它具有id="test-xml"name内容。我用这个jQuery的代码从XML数据并显示,在<p>

function loadHDDs(name) 
    { 
    $.ajax({ 
     type: "GET", 
     url: 'data/parts.xml', 
     dataType: "xml", 
     success: parseHDDsXml 
    }); 
    } 
    function parseHDDsXml(xml, name) 
    { 
    $(xml).find('hdd[id="2"]').each(function(){ 
     var name; 

     name = $(this).children('name').text(); 

     $("#test-xml").text(name); 
    }); 
    } 

我发现的代码在另一个网站,我真的不知道,我需要loadHDDs后面括号写什么,所以我写了name。我不知道如何在页面加载时干净地执行脚本,所以我在我的页面上添加了onload="loadHDDs();"<body>元素。我使用Google Chrome调试器来查找错误。当我在本地测试我的页面时,在我的电脑上,调试器当然显示XMLHttpRequest cannot load。我将我的项目上传到服务器,并且我根本没有在Chrome调试器中收到任何错误,但<p>元素中的文本不会更改为XML文本。我究竟做错了什么?也许我的脚本有问题?还是XML文档?也许我只是不知道执行jQuery脚本和onload只是不工作?请帮帮我!我是jQuery和Javascript的初学者,所以我恳请您向我展示解决问题的最简单和最容易理解的方法。

在此先感谢!

编辑:我没有足够的评论声望。我加入error函数给我的Ajax,因为Nayeri建议,现在我得到一个错误,loadHDDs未定义。我不明白这一点。我的脚本中可以清楚地看到function loadHDDs(name)。我已经检查了一百次的拼写。

回答

0

添加错误功能,你的Ajax看你的错误:

$.ajax({ 
    type: "GET", 
    url: 'data/parts.xml', 
    dataType: "xml", 
    success: parseHDDsXml, 
    error : function (a,b,c){ 
    console.log(a, b, c) 
    } 
}); 

那么你的xml文件似乎是错了,所以删除<?xml version="2016.6" encoding="UTF-8"?>线XML文件

+0

@Gustas的如果u有一个外部JS文件,你的html页面找不到你的js文件,所以检查你的

相关问题