提问者:小点点

我无法计算表格行数的总和我从网上尝试了很多方法,但都没有


我想构建从api获取数据的表,并且我成功地实现了这一点,所以我现在需要计算表的行数,并在下一行或span div中显示总计,这无关紧要。 我只需要图中所示的总数。。

我已经尝试了许多计算行的解决方案,但总是得到结果零或NaN。 我不知道我做错了什么或者我只是在代码的某个地方犯了错误。。。 如果可能的话,我将感谢您的意见或解决方案。

null

function statsYesterday() {
    $.getJSON('https://api.url, function(data) {
        var data, i, offer, creative, id, conversion, clicks, payout = "";
        for (i in data.response.data.data) {
        offer += "<table><tr><td>" + data.response.data.data[i].Offer.name + "</td></tr></table>";
        creative += "<table><tr><td>" + data.response.data.data[i].OfferUrl.name + "</td></tr></table>";
        id += "<table><tr><td>" + data.response.data.data[i].Stat.affiliate_info1 + "</td></tr></table>";
        conversion += "<table><tr><td>" + data.response.data.data[i].Stat.conversions + "</td></tr></table>";
        clicks += "<table><tr><td>" + data.response.data.data[i].Stat.clicks + "</td></tr></table>";
        //this code reduce payout by 20%
        var num = parseFloat(data.response.data.data[i].Stat.payout);
        var val = num - (num * .20);
        payout += "<table><tr><td> &euro; " + val + "</td></tr></table>";

        
        });
        //end reduce code
        //this is how code look like without reducing percentage
        //payout += "<table><tr><td>" + data.response.data.data[i].Stat.payout + "</td></tr></table>";
        
        

        document.getElementById("offer_name").innerHTML = offer;
        document.getElementById("creative_name").innerHTML = creative;
        document.getElementById("id_name").innerHTML = id;
        document.getElementById("converion_name").innerHTML = conversion;
        document.getElementById("clicks_name").innerHTML = clicks;
        document.getElementById("payout_name").innerHTML = payout;
        
    };
    });
    };

null

null

<body>

<div class="container">
  
  <br><br><button onclick="statsYesterday()" style="background-color: #4CAF50;border: none;color: white;padding: 16px 32px;text-align: center;text-decoration: none;display: inline-block;font-size: 16px;margin: 4px 2px;transition-duration: 0.4s;cursor: pointer;">Yesterday</button> &nbsp; &nbsp; &nbsp; <button onclick="statsToday()" style="background-color: #4CAF50;border: none;color: white;padding: 16px 32px;text-align: center;text-decoration: none;display: inline-block;font-size: 16px;margin: 4px 2px;transition-duration: 0.4s;cursor: pointer;">Today</button> &nbsp; &nbsp; &nbsp; <button onclick="statsLastWeek()" style="background-color: #4CAF50;border: none;color: white;padding: 16px 32px;text-align: center;text-decoration: none;display: inline-block;font-size: 16px;margin: 4px 2px;transition-duration: 0.4s;cursor: pointer;">Last Week</button>
    <br><br>
  <table class="table" id="table">
    <thead>
      <tr>
        <th>Offer</th>
        <th>Creative</th>
        <th>SubID</th>
        <th>Conversion</th>
        <th>Clicks</th>
        <th>Payout</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="offer_name"></td>
        <td id="creative_name"></td>
        <td id="id_name"></td>
        <td id="converion_name"></td>
        <td id="clicks_name"></td>
        <td id="payout_name" style="padding-top:30px;"></td>
      </tr>
    </tbody>
  </table>
  <br><br>
</div>

</body>

null


共1个答案

匿名用户

将这些值推入数组,然后您可以在后面对它们执行加法,如下所示

values=[]
//... your code 
 var num = parseFloat(data.response.data.data[i].Stat.payout);
        var val = num - (num * .20);
         values.push(val)

然后您可以简单地迭代数组并将值相加

 let total=values.reduce((acc,curr)=>acc+curr)
  document.getElementById("total").textContent=total