Jquery数学与多个HTML表

Jquery Math with Multiple HTML tables

本文关键字:HTML Jquery      更新时间:2023-09-26

所以我有12个表,一个代表一年中的每个月。每个表行都有一个显示值的单元格。我想为每个表计算这些行/单元格的总和。现在我正在使用一个脚本,看起来像这样的预览答案,但要复制它12次是不工作的,它是很多代码。有更短的方法吗?

<script type='text/javascript'>
//<![CDATA[
$(window).load(function(){
var valueCells = document.querySelectorAll('.rowDataSdAugust');
var sum = 0;
Array.prototype.forEach.call(
    valueCells,
    function(valueCell) {
      sum += parseFloat(valueCell.innerText);
    }
);
var roughsum = sum /valueCells.length;
var finalsum = roughsum.toFixed(2);
document.querySelectorAll('.totalColAugust')[0].innerHTML = "<h1 style='color:green;'>"+ finalsum + "% GAIN</h1>";
});
//]]> 
</script>
<script type='text/javascript'>
//<![CDATA[
$(window).load(function(){
var valueCells = document.querySelectorAll('.rowDataSdJuly');
var sum = 0;
Array.prototype.forEach.call(
    valueCells,
    function(valueCell) {
      sum += parseFloat(valueCell.innerText);
    }
);
var roughsum = sum /valueCells.length;
var finalsum = roughsum.toFixed(2);
document.querySelectorAll('.totalColJuly')[0].innerHTML = "<h1 style='color:green;'>"+ finalsum + "% GAIN</h1>";
});
//]]> 
</script>

创建两个数组——一个用于表名,另一个用于总列名。然后通过循环执行相同的函数次数。

    <script type='text/javascript'>
//<![CDATA[
    $(window).load(function(){
        var tableArray = new Array("rowDataSdJanuary","rowDataSdFebruary","rowDataSdMarch","rowDataSdApril","rowDataSdMay","rowDataSdJune","rowDataSdJuly","rowDataSdAugust","rowDataSdSeptember","rowDataSdOctober","rowDataSdNovember","rowDataSdDecember");
        var totalColArray = new Array("totalColJanuary","totalColFebruary","totalColMarch","totalColApril","totalColMay","totalColJune","totalColJuly","totalColAugust","totalColSeptember","totalColOctober","totalColNovember","totalColDecember");
        for(i=0; i<tableArray.length; i++) {     
            var valueCells = document.querySelectorAll('.'+tableArray[i]);
            var sum = 0;
            Array.prototype.forEach.call(
                valueCells,
                function(valueCell) {
                  sum += parseFloat(valueCell.innerText);
                }
            );
            var roughsum = sum /valueCells.length;
            var finalsum = roughsum.toFixed(2);
            document.querySelectorAll('.'+totalColArray[i])[0].innerHTML = "<h1 style='color:green;'>"+ finalsum + "% GAIN</h1>";            
        }        
    });
//]]> 
</script>