2016-09-28 8 views
0

Ich versuche, HTML mit einer AJAX-Anfrage aus einer JSON-Datei ausgeben. Wenn ich console.log benutze, sehe ich, dass die Daten gut laufen, aber wenn ich eine Variable verwende, um die Schleife zu erfassen und in HTML auszugeben, sehe ich nur ein Ergebnis. Was vermisse ich?Ausgabe HTML von AJAX/JSONP Anfrage mit jQuery

$.ajax({ 
    url: "http://sitedotcom/blog/json", 
    dataType: "jsonp", 
    jsonpCallback: "jsonpCallback", 
    success: jsonpCallback 
}); 

function jsonpCallback(data) { 
    for (var key in data) { 
     if (data.hasOwnProperty(key)) { 
      console.log(data[key]["title"] + ", " + data[key]["entry_id"]); 
      rssData = '<h2>' + data[key]["title"] + "</h2><p>" + data[key]["blog_summary"] + "</p>"; 

     } 
     $('#blog-content').html(rssData); 
    } 
} 

Antwort

1

Sie haben $('#blog-content').html(rssData); innerhalb der Schleife .... so nur das letzte Ergebnis zeigen wird, da html() alle Inhalte ersetzt.

Versuchen Sie es mit append() statt oder verketten rssData jede Iteration und setzen html() nach Schleife

vervollständigt
+0

perfekt ... 'append()' funktioniert gut. Geschätzt. – frshjb373

+0

Seien Sie vorsichtig, wenn die Bedingung falsch ist, wenn 'rssData' zum ersten Mal falsch definiert wird ... bei jeder anderen Iteration ist es global und dupliziert vorherigen Inhalt. Loop benötigt etwas Bereinigung und verwendet nicht global – charlietfl

0

Es ist wie rssData schaut aus Anwendungsbereich ist, wenn Sie es zu Ihrem # Blog-Inhalt hinzufügen. Außerdem geben Sie unterschiedliche Daten aus, wenn Sie Ihr Konsolenprotokoll erstellen und Ihre rssData-Variable festlegen.

Wenn Sie das JSON-Layout und auch das HTML-Layout bereitstellen könnten, an das Sie anhängen möchten.