2016-06-13 58 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文件,所以檢查你的

相關問題