如何总计JSON总结果?

时间:2017-03-04 13:48:34

标签: javascript jquery json ajax

我有这个脚本从JSON结果中获取数据,这个脚本也按ID过滤结果

  $(document).ready(function () {
        //Call EmpDetails jsonResult Method
        $.getJSON("/smetkis/getTrosokList",
        function (json) {
            var tr;
              for (var i = 0; i < json.length; i++) {
                if (json[i].skID == '@Html.DisplayFor(model => model.smID)') {
                   tr = $('<tr />');
                    tr.append("<td >" + json[i].Artikal + "</td>");
                    tr.append("<td>" + json[i].kol + "</td>");
                    tr.append("<td>" + json[i].cena + "</td>");
                    tr.append($('<td class="vkupno1">' + json[i].vkupnot + '</td>'));
                    $('table').append(tr);
                }
            }
    });
    });

此外,我有这个脚本与类vkupno1的列相同,但不理解单元格的结果。

 $(document).ready(function () {
    colSum();
});
function colSum() {
    var sum = 0;
        $(".vkupno1").each(function () {
        sum += parseFloat($(this).text());
    });
    $('#result').html((sum).toFixed(2).replace(/(\d)(?=(\d{6})+(?!\d))/g, "$1.") + " €");
}

如何汇总(json[i].vkupnot)-value或细胞分类"vkupno1"

这是JSON结果:

  

[{&#34; smetki&#34;:空,&#34; TRID&#34;:1,&#34;铲&#34;:1,&#34; Artikal&#34;:&#34 ; gdfgsdgfdg&#34;&#34; KOL&#34;:4.00,&#34;以上的价格&#34;:4.00,&#34; vkupnot&#34;:16.00},{&#34; smetki&#34 ;:空,&#34; TRID&#34:4,&#34;铲&#34:4,&#34; Artikal&#34;:&#34; kjhkjhkjhk&#34;&#34; KOL&#34; :7.00,&#34;以上的价格&#34;:7.00,&#34; vkupnot&#34;:47.00},{&#34; smetki&#34;:空,&#34; TRID&#34;:5,& #34;铲&#34:4,&#34; Artikal&#34;:&#34; lkjlkjlk&#34;&#34; KOL&#34;:8.00,&#34;以上的价格&#34;:8.00, &#34; vkupnot&#34;:64.00},{&#34; smetki&#34;:空,&#34; TRID&#34;:6,&#34;铲&#34;:5,&#34; Artikal&#34;:&#34; gdfg&#34;&#34; KOL&#34;:5.00,&#34;以上的价格&#34;:5.00,&#34; vkupnot&#34;:25.00},{& #34; smetki&#34;:空,&#34; TRID&#34;:7,&#34;铲&#34;:6,&#34; Artikal&#34;:&#34; gdfg&#34 ;, &#34; KOL&#34;:5.00,&#34;以上的价格&#34;:5.00,&#34; vkupnot&#34;:25.00},{&#34; smetki&#34;:空,&#34; TRID&#34;:8,&#34;铲&#34;:7,&#34; Artikal&#34;:&#34; gagaggag&#34;&#34; KOL&#34;:5.00&#34 ;以上的价格&#34;:55.00&#34; vkupnot&#34;:275.00},{&#34; smetki&#34;:空,&#34; TRID&#34;:9,&#34;铲& #34;:7,&#34; Artikal&#34;:&#34; GGG&#34;&#34; KOL&#34;:4.00,&#34;以上的价格&#34;:65.00&#34; vkupnot&#34;:260.00}]

1 个答案:

答案 0 :(得分:1)

您可以在不读取DOM的情况下添加响应本身的值。

试试这个

$(document).ready(function() {
  //Call EmpDetails jsonResult Method
  $.getJSON("/smetkis/getTrosokList",
    function(json) {
      var tr;
      var sum = 0; //initialising sum
      for (var i = 0; i < json.length; i++) {
        if (json[i].skID == '@Html.DisplayFor(model => model.smID)') {
          tr = $('<tr />');
          tr.append("<td >" + json[i].Artikal + "</td>");
          tr.append("<td>" + json[i].kol + "</td>");
          tr.append("<td>" + json[i].cena + "</td>");
          tr.append($('<td class="vkupno1">' + json[i].vkupnot + '</td>'));
          $('table').append(tr);
          sum += parseFloat(json[i].vkupnot); //adding directly from the response
        }
      }
      $('#result').html((sum).toFixed(2).replace(/(\d)(?=(\d{6})+(?!\d))/g, "$1.") + " €");
    });
});

在阅读动态创建的DOM元素之前,您需要等待响应。