2017-04-25 247 views
-4

我有一个由PHP自动生成并由jquery操纵的表,所以我需要计算每个数字行的总和的百分比,什么是最好的方法来做到这一点?计算表中每一行的总数的百分比

<div id="tableResults" class="container"> 
 
    <table id="table_resultados" class="table table-bordered table-hover"> 
 
    <thead class="table-head"> 
 
     <tr> 
 
     <th>SEX</th> 
 
     <th class="names">FATAL</th> 
 
     <th class="names">SERIOUS</th> 
 
     <th class="names">OTHERS</th> 
 
     <th class="names">TOTAL</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody> 
 
     <tr> 
 
     <td>WOMAN</td> 
 
     <td class="VitimaFATAL">4</td> 
 
     <td class="SERIOUS">6</td> 
 
     <td class="OTHERS">1</td> 
 
     <td class="Total">11</td> 
 
     </tr> 
 
     <tr> 
 
     <td>MEN</td> 
 
     <td class="FATAL">18</td> 
 
     <td class="SERIOUS">28</td> 
 
     <td class="OTHERS">23</td> 
 
     <td class="Total">69</td> 
 
     </tr> 
 
     <tr> 
 
     <td>UNKNOWN</td> 
 
     <td class="FATAL">3</td> 
 
     <td class="SERIOUS">1679</td> 
 
     <td class="OTHERS">3129</td> 
 
     <td class="Total">4811</td> 
 
     </tr> 
 
     <tr id="Totais"> 
 
     <td>TOTAL</td> 
 
     <td id="FATAL">25</td> 
 
     <td id="SERIOUS">1713</td> 
 
     <td id="OTHERS">3153</td> 
 
     <td id="Total">4891</td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</div>

我已经能够总结所有的值

 function colSum() { 

     var ids = new Array(); 
     $('#table_resultados .names').each(function() 
     { 

      ids.push($(this).html().replace(/\s/g, '')); 
      $('#Totais').append('<td id="' + $(this).html().replace(/\s/g, '') + '"></td>') 

     }); 

     $.each(ids, function (index, value) { 
      var sum = 0; 
      $('.' + value).each(function() { 
       sum += parseInt($(this).html()); 

      }); 
      $('#' + value).html(sum); 


     }); 

我需要计算在这个例子中,我需要将总的所有列的百分比在重要,严重,请求者调用'%总数'之后插入一列,并且具有例如总数为%的列的重量%列的总数为36.36-26.08-0.06-0.51。总列出的%列将是54.54-40.57-34.89。 35.02

+0

你有什么试过? – j08691

+0

你能清理你的代码示例,请稍微清楚一点吗? –

+0

我已经能够总结所有值 –

回答

1

var total_per = 0; 
 
$.each($('#table_resultados td.Total'), function() { 
 
    if (!isNaN($(this).text())) { 
 
    total_per = total_per + parseInt($(this).text()); 
 
    } 
 
}); 
 
console.log('Total: ' + total_per); 
 

 
$.each($('#table_resultados tbody tr'), function() { 
 
    var obj = $(this).find('.Total'); 
 
    if (!isNaN(obj.text())) { 
 
    var v = parseInt(obj.text()); 
 

 
    $('<td></td>') 
 
    .text(parseFloat((v/total_per) * 100).toFixed(2) + '%') 
 
    .appendTo(this); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="tableResults" class="container"> 
 
    <table id="table_resultados" class="table table-bordered table-hover"> 
 
    <thead class="table-head"> 
 
     <tr> 
 
     <th>SEX</th> 
 
     <th class="names">FATAL</th> 
 
     <th class="names">SERIOUS</th> 
 
     <th class="names">OTHERS</th> 
 
     <th class="names">TOTAL</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody> 
 
     <tr> 
 
     <td>WOMAN</td> 
 
     <td class="VitimaFATAL">4</td> 
 
     <td class="SERIOUS">6</td> 
 
     <td class="OTHERS">1</td> 
 
     <td class="Total">11</td> 
 
     </tr> 
 
     <tr> 
 
     <td>MEN</td> 
 
     <td class="FATAL">18</td> 
 
     <td class="SERIOUS">28</td> 
 
     <td class="OTHERS">23</td> 
 
     <td class="Total">69</td> 
 
     </tr> 
 
     <tr> 
 
     <td>UNKNOWN</td> 
 
     <td class="FATAL">3</td> 
 
     <td class="SERIOUS">1679</td> 
 
     <td class="OTHERS">3129</td> 
 
     <td class="Total">4811</td> 
 
     </tr> 
 
     <tr id="Totais"> 
 
     <td>TOTAL</td> 
 
     <td class="FATAL">25</td> 
 
     <td class="SERIOUS">1713</td> 
 
     <td class="OTHERS">3153</td> 
 
     <td class="Total">4891</td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</div>

你会发现这里:

<tr id="Totais"> 
    <td>TOTAL</td> 
    <td id="FATAL">25</td> 
    <td id="SERIOUS">1713</td> 
    <td id="OTHERS">3153</td> 
    <td id="Total">4891</td> 
    </tr> 

你有id当它应该是class在所有这些表格单元格。 当你想要一个百分比的东西,你把这个数字除以总数,然后乘以100得到的百分比。

+0

我需要每列的百分比 –

+0

您可以从中得出您的解决方案。我们通常不会为这里的人写这么多的代码。 Stackoverflow是你学习代码的地方,而不是你获取代码的地方。祝你好运。 – trevster344

+0

非常感谢trevster344 –