2016-05-25 38 views
0

kann mir jemand helfen, ich habe eine externe JSON-Datei, die ich verbinden und Daten manuell anzeigen kann, aber wenn ich durch data.length iterate (das ist 100) zeigt es nur die 100. Daten.Iterating durch jQuery JSON

Hier ist der Code

var url ="output.json"; 
$.getJSON(url, function(data) { 
    for (var i=0;i <= data.length; i++) { 
    $('#stage').html('<h4>' + data[i].title + '</h4>'); 
    } 
}); 
+0

Haben Sie Daten bedeuten, ist ein JSON-Array ? –

+0

Haben Sie xhr Antwort vom Server überprüft? .json kann vom Browser als statische Datei betrachtet werden, und alle Anfragen nach dem ersten können aus dem Cache übernommen werden. –

+0

einfacher Fehler, den ich tat. Danke an Alastair Brown. (blöd mich) Als ich mit .html iterierte, schrieb es einfach weiter, bis es 100 erreichte und deshalb sah ich das 100ste Ergebnis. .append zeigte alles. – muratkh

Antwort

0

Ich denke, es ist, weil Sie das #stage Element mit jeder Iteration sind überschrieben werden. jedes Datenelement anhängt könnte besser funktionieren:

var url ="output.json"; 
$.getJSON(url, function(data) { 
    for (var i=0;i <= data.length; i++) { 
    $('#stage').append('<h4>' + data[i].title + '</h4>'); 
    } 
}); 
+0

hat perfekt funktioniert, vielen Dank! – muratkh

+0

.html überschrieb, bis es 100 erreichte. Deshalb sah ich nur 100. Ergebnis. jetzt mit .append funktioniert es wie ein Zauber – muratkh

1

Jquery .html()

Ich glaube, Sie den gleichen Inhalt ersetzen, wie Alastair sagte.

Hier ist eine fiddle link, um den Unterschied zu zeigen.

html:

<div id='stage'></div> 
<div id='stage-2'></div> 

javascript:

var data = [{title:1},{title:2},{title:3},{title:4},{title:5}]; 
var htmlString = '' 
for(var i=0;i<data.length;i++){ 
    $('#stage').html('<h4>' + data[i].title + '</h4>'); 
    htmlString += '<h4>' + data[i].title + '</h4>'; 
} 
$('#stage-2').html(htmlString); 
1
var url ="output.json"; 
var htmlString = ''; 
$.getJSON(url, function(data) { 
    for (var i=0;i <= data.length; i++) { 
    htmlString+='<h4>' + data[i].title + '</h4>' 
    } 
    $('#stage').html(htmlString); 
}); 

hoffen, dass dies Ihr Problem lösen ... Viel Glück :-)