Вы не можете иметь более одного элемента с одинаковым идентификатором на странице. $("#someId")
всегда выбирает не более 1 элемента. Итак, ваша первая проблема в том, что у вас даже нет списка элементов. Вы можете решить это, используя class
.
Как только вы решите проблему id
, у вас возникнет проблема: вы пытаетесь добавить текст, как если бы он был числом. Сначала вы конвертируете текст в число за один цикл, затем снова просматриваете всю коллекцию и пытаетесь добавить текстовые числа. Просто получите общее количество за первый цикл. Вы будете добавлять числа вместо текста, и вам придется только итерировать свою коллекцию один раз.
Кроме того, вам не нужно повторять ключи объекта, просто получите свойство. Вы можете просто ссылаться на имущество напрямую: json[i].amt_1
Пока мы это делаем, давайте не будем создавать html-строку, а просто создадим элементы DOM напрямую. И воспользуйтесь $.each()
, чтобы выполнить цикл.
var total = 0;
$.each(json, function (i, item) {
var row = $('<tr>').appendTo("#details");
$("<td>").appendTo(row).addClass("amt").text(item.amt_1);
total += item.amt_1;
});
var row = $("<tr>").appendTo("#details");
$("<td>").appendTo(row).text(total);