У меня есть результат JSON:
{
"html_content": [
[
[
"Navegantes",
"11",
"8",
"3",
"0"
]
],
[
[
"Tigres",
"11",
"8",
"3",
"0"
]
],
[
[
"Caribes",
"11",
"6",
"5",
"2"
]
],
[
[
"Leones",
"11",
"6",
"5",
"2"
]
],
[
[
"Aguilas",
"11",
"5",
"6",
"3"
]
],
[
[
"Tiburones",
"10",
"4",
"6",
"3.5"
]
],
[
[
"Cardenales",
"10",
"3",
"7",
"4.5"
]
],
[
[
"Bravos",
"11",
"3",
"8",
"5"
]
]
]
}
И мне нужно построить, для каждой такой разметки HTML, как этот:
<tr>
<td>Navegantes</td>
<td>11</td>
<td>8</td>
<td>3</td>
<td>0</td>
<td>
<span class="glyphicon glyphicon-play"></span>
<span class="glyphicon glyphicon-stop"></span>
</td>
</tr>
<tr>
<td>Tigres</td>
<td>11</td>
<td>8</td>
<td>3</td>
<td>0</td>
<td>
<span class="glyphicon glyphicon-play"></span>
<span class="glyphicon glyphicon-stop"></span>
</td>
</tr>
И так далее, я сделал этот код:
$.each(data.html_content, function(i, v) {
htm += "here goes the HTML code";
});
Но это не работает, я думаю, из-за массива, может ли любая помощь?
Что-то вроде этого:
for (var i = 0; i < data.html_content.length; i++) {
var tr = "<tr>";
var td = "";
for (var j = 0; j < data.html_content[i][0].length; j++) {
td += "<td>" + data.html_content[i][0][j] + "</td>";
}
tr += td + "<td><span></span><span></span></td></tr>";
$("table").append(tr);
}
var tr = "<tr>";
следует инициализировать вне первого for
цикла , но остальное работает отлично
Вы можете попробовать что-то вроде этого ( ПРИМЕР.)
var table = $('<table/>')
$.each(data.html_content, function(k, v){
var tr = $('<tr/>');
$.each(v[0], function(i, j){
$('<td/>', { 'text':j }).appendTo(tr);
});
var sp1 = $('<span/>', { 'class':'glyphicon glyphicon-play', 'text':'Play' });
var sp2 = $('<span/>', { 'class':'glyphicon glyphicon-stop', 'text':'Stop' });
var tdSpan = $('<td/>');
tdSpan.append(sp1).append(sp2);
tr.append(tdSpan);
table.append(tr);
});
$('body').append(table);
<table>
так как мне нужны только теги <tr>
, какой код я должен удалить, чтобы получить только их?
Вот базовое решение fron scratch:
$.each(data.html_content, function(i, v) {
htm += '<tr>' +
' <td>' + i[0][0] + '</td>' +
' <td>' + i[0][1] + '</td>' +
' <td>' + i[0][2] + '</td>' +
' <td>' + i[0][3] + '</td>' +
' <td>' + i[0][4] + '</td>' +
' <td>' +
' <span class="glyphicon glyphicon-play"></span>' +
' <span class="glyphicon glyphicon-stop"></span>' +
' </td>' +
'</tr>';
});
Вы можете написать это с нуля, но есть много доступных шаблонов JS, которые могут использовать JSON.
См. Http://coding.smashingmagazine.com/2012/12/05/client-side-templating/ о том, как они работают.