2016-08-31 2 views
0

Vielleicht mache ich das eine schlechte Möglichkeit, aber ich habe versucht, durch den JSON durchschleifen, um eine Tabelle zu erstellen. Das Codieren ohne die Schleife funktioniert und ich kann mit einer Schleife durchgehen, aber wenn ich eine verschachtelte hinzufüge, erzeugt es keine Zeilen. Mache ich das richtig oder verpasse ich etwas?Looping durch Json, um Tabelle zu erstellen

for(var i = 3; i < 17; i++){ 

    $('.one').append("<tr>"); 

    for(var j = 0; j < 5; j++){ 

     $('.one').append("<td>" + obj.values[i][j] + "</td>");  

    } 

    $('.one').append("</tr>"); 
} 

Ich hoffe, es ist nicht ein einfacher Tippfehler ich mit Blick auf bin, aber ich habe mehrere Möglichkeiten, und bekommen es durch harte Codierung j zu arbeiten und die Leitung länger zu machen. Ich bin immer noch ziemlich neu und das war mein erster erfolgreicher Ajax-Anruf. Jede Hilfe wird sehr geschätzt. Vielen Dank.

+0

wo Ihre json Datenstruktur? kannst du es hier zeigen? –

Antwort

0

JQuery .append() hängt einzelne offene und schließende Tags nicht an das DOM an. Es fügt ein ganzes Element hinzu - offenes und schließendes Tag. In Ihrem Code wird bei jedem Aufruf von append() der vorherige Ausgang überschrieben.

Hier ist eine mögliche Lösung:

for (var i = 3; i < 17; i ++) {

$('.one').append("<tr>"); 

for(var j = 0; j < 5; j++){ 

    $('.one tr').html("<td>" + obj.values[i][j] + "</td>");  

} 

}

+0

Perfekt! Ich kannte das Append nicht, das benötigt wurde, um das gesamte Tag hinzuzufügen, damit es funktioniert. Für meinen Code stelle ich: $ ('. One'). Append (""); . in der äußeren Schleife und verwendet: $ ('eine tr: letzte') append (" "+ obj.values ​​[i] [j] +""); auf der inneren Schleife. Der Code funktioniert jetzt und es ist viel kleiner. Danke noch einmal! –

+0

Ich bin froh, dass es geholfen hat! Es ist immer gut, wenn Sie auch die Menge an Code reduzieren können! – codeslinger

Verwandte Themen