2017-04-25 259 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 –