2016-06-08 4 views
0

Ich schreibe eine dynamische Tabelle, die Daten aus Array lesen, aber ich kann die Tabelle nicht erfolgreich erstellen, habe ich etwas falsch gemacht?Konvertieren Array in Tabelle

html Teil:

<tr id="rowTitle"> 
    <td align="middle"><strong>Name</strong></td> 
</tr> 

jQuery Teil:

var name = ["Laura","Michael","Steve"] 
var count = 0 

for (var i = 0; i < name.length; i++) { 
    var row = '<tr>' 
      + '<td>' + name[count] + '</td>' 
      count++ 
      + '</tr>' 
} 

$(row).insertAfter($('#rowTitle')) 

Antwort

1

Try this:

var name = ["Laura","Michael","Steve"] 
var count = 0 
var row = ''; // initialize row outside loop 
for (var i = 0; i < name.length; i++) { 
    row += '<tr>'+ '<td>' + name[count] + '</td>'+(count++)+'</tr>'; // append html string into row using += 
} 
$(row).insertAfter($('#rowTitle')); // insert html after #rowTitle 
1

Sie nur einfügen, die letzten <tr>, insertAfter() sollte in jeder Schleife aufgerufen werden. Wenn Sie jedoch jQuery verwenden, ich glaube, Sie sollen eigentlich jQuery - einfache HTML in Strings Aufbau ist eine schlechte Idee:

var array = ["Laura","Michael","Steve"], $td, $tr; 
array.forEach(function(value) { 
    $tr = $('<tr>').insertAfter($('#rowTitle')), $td = $('<td>').appendTo($tr) 
    $td.text(value) 
}) 

Erzeugt gültigen Markup mit Zeilen in derselben Reihenfolge wie array. Und als Nebeneffekt, lesbarer und wartungsfreundlicher als das Erstellen komplexer '<tr>' + '<td>' Saiten.