jQuery:行距的索引问题

时间:2019-03-20 12:13:55

标签: jquery html html-table

我想在每个Branch列的末尾添加新行,以使用Jquery显示Branch Total。但是在页面末尾出现问题,“分支总计”行在两行之前插入,我无法解决,请参见jsfiddle

问题是从当前行中选择下一行以在以下代码中插入新行的索引:

$('.units').each(function () {
    //console.log(++i);
    let thisUnit = $(this);
    let thisIndex = $(this).index();
    let firstColUnit;
    let secondColUnit;
    if ($(this).find('td[rowspan]').length == 2) {
        firstColUnit = $(this).find('td:eq(0)');
        secondColUnit = $(this).find('td:eq(1)');
    }

    if ($(this).find('td[rowspan]').length == 3) {
        firstColUnit = $(this).find('td:eq(1)');
        secondColUnit = $(this).find('td:eq(2)');
    }

    let firstColRowspanUnit = parseInt(firstColUnit.attr('rowspan'));
    let secondColRowspanUnit = parseInt(secondColUnit.attr('rowspan'));

    nextUnit += firstColRowspanUnit;
    //nextUnit += thisUnit.index();


    // let nextUnits = thisUnit.nextUntil('.units').last();
    // let expectedRow = $('.allrow:eq('+(nextUnit-1)+')');
    let expectedRow = $('.allrow:eq(' + (nextUnit - 1) + ')');


    expectedRow.after('<tr><td colspan="6"><strong>Branch Total</strong></td></tr>');

    let s = parseInt(firstColShip.attr('rowspan'));
    let t = parseInt(firstColUnit.attr('rowspan'));
    let tt = parseInt(secondColUnit.attr('rowspan'));

    firstColShip.attr('rowspan', s + 1);
    firstColUnit.attr('rowspan', t + 1);
    secondColUnit.attr('rowspan', tt + 1);
});

这是屏幕截图 show image

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我可以找到问题所在,但无法解决。

下面的2行未考虑在内,因为它们的行距不大于1。

如果将它们删除,则效果很好

    <!--Branch Total Row-->
    <tr class="allrow">
        <!--Ship Col-->

        <!--Posting Col-->
        <td rowspan="1">HM/CAB</td>
        <!--Branch Col-->
        <td rowspan="1">STEWARD</td>
        <td>L/STW</td>
        <td></td>
        <td></td>
        <td>1</td>
        <td>0</td>
        <td>0</td>
    </tr>

    <!--Branch Total Row-->
    <tr class="allrow">
        <!--Ship Col-->

        <!--Posting Col-->
        <td rowspan="1">HM/CAB</td>
        <!--Branch Col-->
        <td rowspan="1">TOPASS</td>
        <td>TOP-I</td>
        <td></td>
        <td></td>
        <td>1</td>
        <td>0</td>
        <td>0</td>
    </tr>