Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为每个动态生成的表获取列的总和?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何为每个动态生成的表获取列的总和?

Javascript 如何为每个动态生成的表获取列的总和?,javascript,jquery,html,Javascript,Jquery,Html,我有一个页面,每个日期都有动态生成的表。每个日期都有一列,显示每个产品的支付金额。例如: <table class="table"> <thead> <tr> <th> <b>Product</b> </th> <th>

我有一个页面,每个日期都有动态生成的表。每个日期都有一列,显示每个产品的支付金额。例如:

<table class="table">
        <thead>
            <tr>
                <th>
                    <b>Product</b>
                </th>
                <th>
                    <b>Amount</b>
                </th>
            </tr>
        </thead>

        <tbody>
            <tr>
                <td>
                    Kroket
                </td>
                <td>
                    € 5.00 <!-- Dynamically generated -->
                </td>
            </tr>
        </tbody>
        <tfoot>
          <tr>
            <td>Total:</td>
            <td class="total"></td>
        </tr>
    </tfoot>
</table>
当我只有一个表时,类似的函数也会起作用。但是在这里我无法让它工作,因为它显示每个表中所有表的总数。我无论如何都不是JavaScript/JQuery方面的专家,如果有人能给我提供更多的见解,我将不胜感激

function updateTotalOfTotals() {
    $(".table").each(function () {

        var totalSum = 0;
        //target only the trs from current table
        var $dataRow = $(this).find('tbody tr');

        $dataRow.each(function () {
            $(this).find('td:nth-child(2)').each(function (i) {
                totalSum += parseFloat($(this).text().replace("€", ""));
            });
        });

        var twoPlacedFloatTotalSum = parseFloat(totalSum).toFixed(2);

        //target only the total from current table
        $(this).find(".total").html(twoPlacedFloatTotalSum);

    });
}
演示:

演示:

演示:



演示:

var$dataRow=$(this.find('tbody tr')
$(this.find('.total').html(TwoPlacedFloatTolSum)
$(“.total”)。每个(函数(i){
必须更改为只针对一个
total
元素谢谢我现在就知道了!:)
var$dataRow=$(this)。find('tbody tr');
$(this)。find('.total').html(twoPlacedFloatTotalSum);
$(.total”)。每个(函数(i){
必须更改为只针对一个
total
元素谢谢我现在知道了!:)
var$dataRow=$(this.find('tbody tr');
$(this.find('.total').html(TwoPlacedFloatTolSum);
$(.total”)。每个(函数(I){
必须更改为只针对一个
total
元素谢谢我现在知道了!)
var$dataRow=$(this.find('tbody tr');
$(this.find('.total').html(TwoplacedFloatTolSum);
$(.total”)。每个(函数(i){
必须更改为只针对一个
total
元素谢谢我现在就知道了!:@user2609980:除了工作答案(+1),如果需要,我可能会考虑将实际数值和货币作为数据属性添加到
td
,即:
€5.00
,这样您就可以简化代码,而不必担心货币符号。这还意味着您不必在符号更改时更新解析代码。还允许您更灵活的货币转换等等。@FrançoisWahl是的,你是对的……否则格式可能会在解析value@FrançoisWahl Aha听起来像是一个聪明的举动。值来自Razor/C#如下:@Html.DisplayFor(modelItem=>order.UnitPrice)这个模型有一个属性,可以输出一欧元。这当然可以改变,然后我做一些类似的事情,给我5.00欧元。所以当我改变模型不显示欧元时,这是一个非常有价值的更新,有一个应用程序也可以在非欧元区使用。感谢t他提示!@ArunPJohny格式化怎么会导致其他问题?现在总是显示一个欧元。@user2609980:您的模型可以有一个助手返回显示值,而其余的是分开的。例如:
@Html.DisplayFor(modelItem=>order.DisplayUnitPrice)/@user2609980:除了工作答案(+1),如果需要,我可能会考虑将实际数值和货币作为数据属性添加到
td
,即:
€5.00
,这样您就可以简化代码,而不必担心货币符号。这还意味着您不必在符号更改时更新解析代码。还允许您更灵活的货币转换等等。@FrançoisWahl是的,你是对的……否则格式可能会在解析value@FrançoisWahl Aha听起来像是一个聪明的举动。值来自Razor/C#如下:@Html.DisplayFor(modelItem=>order.UnitPrice)这个模型有一个属性,可以输出一欧元。这当然可以改变,然后我做一些类似的事情,给我5.00欧元。所以当我改变模型不显示欧元时,这是一个非常有价值的更新,有一个应用程序也可以在非欧元区使用。感谢t他提示!@ArunPJohny格式化怎么会导致其他问题?现在总是显示一个欧元。@user2609980:您的模型可以有一个助手返回显示值,而其余的是分开的。例如:
@Html.DisplayFor(modelItem=>order.DisplayUnitPrice)/@user2609980:除了工作答案(+1),如果需要,我可能会考虑将实际数值和货币作为数据属性添加到
td
,即:
€5.00
,这样您就可以简化代码,而不必担心货币符号。这还意味着您不必在符号更改时更新解析代码。还允许您更灵活的货币转换等等。@FrançoisWahl是的,你是对的……否则格式可能会在解析value@FrançoisWahl Aha听起来像是一个聪明的举动。值来自Razor/C#如下:@Html.DisplayFor(modelItem=>order.UnitPrice)这个模型有一个属性,可以输出一欧元。这当然可以改变,然后我做一些类似的事情,给我5.00欧元。所以当我改变模型不显示欧元时,这是一个非常有价值的更新,有一个应用程序也可以在非欧元区使用。感谢t他提示!@ArunPJohny格式化怎么会导致其他问题?现在总是显示一个欧元。@user2609980:您的模型可以有一个助手返回显示值,而其余的是分开的。例如:
@Html.DisplayFor(modelItem=>order.DisplayUnitPrice)/@user2609980:除了工作答案(+1),如果需要,我可能会考虑将实际数值和货币作为数据属性添加到
td
,即:
€5.00
,这样您就可以简化代码,而不必担心货币符号。这还意味着您不必在符号更改时更新解析代码。还允许您更灵活的货币转换等等。@FrançoisWahl是的,你是对的……否则格式可能会在解析value@FrançoisWahl-Aha听起来是个聪明的举动
function updateTotalOfTotals() {
    $(".table").each(function () {

        var totalSum = 0;
        //target only the trs from current table
        var $dataRow = $(this).find('tbody tr');

        $dataRow.each(function () {
            $(this).find('td:nth-child(2)').each(function (i) {
                totalSum += parseFloat($(this).text().replace("€", ""));
            });
        });

        var twoPlacedFloatTotalSum = parseFloat(totalSum).toFixed(2);

        //target only the total from current table
        $(this).find(".total").html(twoPlacedFloatTotalSum);

    });
}