jquery 选择前面的行并获得列总和的总和

qco9c6ql  于 2023-01-20  发布在  jQuery
关注(0)|答案(1)|浏览(120)

我尝试对jQuery Datatables表中的多个选择应用动态求和,但遇到了一些bug。我应用prevAll()从选中的行加上之前所有的行中进行选择,到目前为止一切正常,但求和会对之前所有的值进行求和,除了单击的值,如果我通过进一步向上或向下单击来更改选择,行求和会出错。
下面是我的js/jQuery代码

$(document).ready(function() {
    var t = $('#tableFatture').DataTable();
    var sum = 0;
    $('#tableFatture tbody').on('click', 'tr', function() {
        if ($(this).hasClass('selected')) {
            $(this).removeClass('selected');
            sum = eval(sum + "-(" + t.cell(this, 4).data() + ")");
        } else {
            sum = 0;
            $(this).prevAll().addClass('selected');        
            t.rows('.selected').every(function(rowIdx) {
                sum = eval(sum + "+(" + t.row(rowIdx).data()[4] + ")");
            });
        }
                   
        $('#totParz').text('Tot. Selezionato: ' + sum.toFixed(2));
    });
});

我希望它从选定行向上添加总和,如果我更改选择,它将更新总和

6jjcrrmo

6jjcrrmo1#

<div class="tableContainer">
            
            <table id="tableFatture" class="styled-table">
                <thead class="">
                    <tr class=" ">
                        <th class="">
                            <span class="">Numero</span>
                        </th>
                        <th class="">
                            <span class="">Data Emissione</span>
                        </th>
                        <th class="importo">
                            <span class=" ">Totale €</span>
                        </th>
                        <th class="">
                            <span class=" ">Seleziona</span>
                        </th>

                    </tr>
                </thead>
                <tbody class="tableBody">
                    @php $total = 0; @endphp
                    @foreach ($res as $f)
                        <tr>
                            <td class="hidden">{{ $f->mpa_CodSap }}</td>
                            <td class="checkNumDoc">{{ $f->mpa_NumDoc }}</td>
                            <td>{{ date('d-m-Y', strtotime($f->mpa_DatDoc)) }}</td>
                            <td class="@if(number_format((float) $f->mpa_importo, 2, '.', '') < 0) negative @endif"> {{ number_format((float) $f->mpa_importo, 2, '.', '') }}@php $total += $f->mpa_importo; @endphp</td>
                            <td></td>
                        </tr>
                    @endforeach
                </tbody>
                <tfoot>
                    <tr>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td><span id="totParz" class="totalFatture">Totale:<span></td>
                        <td>
                            <a class="" href="#">
                                <span class="pagaOra"> Paga Ora </span>
                            </a>
                        </td>
                    </tr>
                </tfoot>
            </table>

这是我在html和laravel中的表

相关问题