2016-06-13 6 views
0

Ich arbeite an meiner neuen PC-Build-Website und habe Probleme, XML-Tags mit bestimmten Attributen in meinem HTML-Element <p> anzuzeigen. Meine XML sieht wie folgt aus:Fehler beim Abrufen von XML-Daten im HTML-Format mit jQuery

<?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> 

Ich möchte Tag finden <hdd> mit dem Attribut id="2" in über XML und zeigen ihre Kinder name Inhalte in HTML-<p> Element, das die id="test-xml" hat. Ich habe diesen Code jQuery Daten aus XML zu erhalten und zeigen, dass in <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); 
    }); 
    } 

ich den Code in einer anderen Website gefunden und ich weiß nicht wirklich, was brauche ich in Klammern nach loadHDDs zu schreiben, so Ich schrieb name. Ich weiß nicht, wie man das Skript sauber ausführt, wenn die Seite geladen wird, also fügte ich onload="loadHDDs();" zum <body> Element auf meiner Seite hinzu. Ich verwende Google Chrome Debugger, um Fehler zu finden. Als ich meine Seite lokal getestet habe, hat der Debugger auf meinem Computer natürlich XMLHttpRequest cannot load angezeigt. Ich habe mein Projekt auf den Server hochgeladen und erhalte keinerlei Fehler im Chrome-Debugger, aber der Text im Element <p> ändert sich nicht in den XML-Text. Was mache ich falsch? Vielleicht stimmt etwas mit meinem Skript nicht? Oder XML-Dokument? Vielleicht weiß ich einfach nicht jQuery Skript ausführen und onload funktioniert einfach nicht? Bitte hilf mir! Ich bin ein Anfänger in jQuery und Javascript, also bitte ich Sie, mir die einfachste und verständlichste Art zu zeigen, das Problem zu beheben.

Vielen Dank im Voraus!

EDIT: Ich habe nicht genug Ruf zu kommentieren. Ich habe error Funktion zu meinem Ajax hinzugefügt, wie Nayeri vorgeschlagen hat und jetzt bekomme ich einen Fehler, dass loadHDDs nicht definiert ist. Ich verstehe das nicht. Wir können function loadHDDs(name) in meinem Skript klar sehen. Ich habe die Schreibweise hundert Mal überprüft.

Antwort

0

Fehlerfunktion auf Ihre Ajax Fügen Sie Ihre Fehler zu sehen:

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

dann Ihre XML-Datei ist so Entfernen Sie die <?xml version="2016.6" encoding="UTF-8"?> Zeile Ihrer XML-Datei

+0

@Gustas scheint falsch, wenn u eine Datei js Außen haben , Ihre html-Seite kann Ihre js-Datei nicht finden. Überprüfen Sie daher Ihr