<script src=scripts/jquery-1.8.3.min.js></script>
<script>
$(function() {
  var list = [1, 2, 6, 7, 8, 9, 10].sort( function(a, b) {
    if(a == b) return 0;
    return a > b ? -1 : 1;
  });
  var last = [null, '...'];
  $('#process_ tr').each(function() {
    var v = $(this).find('td:eq(0)').text();
    if(v == last[1]) {
      for(var i=0; i<list.length; i++) {
        var k = list[i]-1;
        last[0].find('td').eq(k).prop('rowspan', last[0].find('td').eq(k).prop('rowspan')+1);
        $(this).find('td').eq(k).remove();
      }
    }else last = [$(this), v]; 
  });});
</script>合并是根据 “申请编号”相同的来进行对指定的列(1、2、6、7、8、9、10列)进行合并
<table id="process_"border=1>
    <tr>
        <th>
            申请编号
        </th>
        <th>
           收款人
        </th>
        <th>
            合同编号
        </th>
        <th>
            款项内容
        </th>
        <th>
            金额
        </th>
        <th>
            申请金额(合计)
        </th>
        <th>
            付款金额(总额)
        </th>
        <th>
            凭证编号
        </th>
        <th>
            付款日期
        </th>
        <th>
        </th>
        
    </tr>    <tr>
        <td>
            PB150122115637
        </td>
        <td>
            陕西金禹科技发展有限公司
        </td>
        <td>
            XM-001
        </td>
        <td>
            款项内容1
        </td>
        <td class="fmoney" style="text-align: right">
            10.00
        </td>
        <td>
        </td>
        <td>
            <input type="text" class="PayMent"  value="0" onkeyup="this.value=clearNoNum(this)"/>
        </td>
        <td>
            <input type="text" />
        </td>
        <td>
            <input type="text" value="0001/1/1 0:00:00" />
        </td>
        <td>
            <input id="Checkbox1" type="checkbox" /></td>
    </tr>
    <tr>
        <td>
            PB150122115637
        </td>
        <td>
            陕西金禹科技发展有限公司
        </td>
        <td>
            XM-002
        </td>
        <td>
            款项内容2
        </td>
        <td class="fmoney" style="text-align: right">
            20.00
        </td>
        <td>
        </td>
        <td>
            <input type="text" class="PayMent"  value="0" onkeyup="this.value=clearNoNum(this)"/>
        </td>
        <td>
            <input type="text" />
        </td>
        <td>
            <input type="text" value="0001/1/1 0:00:00" />
        </td>
        <td>
            <input id="Checkbox1" type="checkbox" /></td>
    </tr>
    <tr>
        <td>
            PB150122115637
        </td>
        <td>
            陕西金禹科技发展有限公司
        </td>
        <td>
            XM-003
        </td>
        <td>
            款项内容3
        </td>
        <td class="fmoney" style="text-align: right">
            30.00
        </td>
        <td>
        </td>
        <td>
            <input type="text" class="PayMent"  value="0" onkeyup="this.value=clearNoNum(this)"/>
        </td>
        <td>
            <input type="text" />
        </td>
        <td>
            <input type="text" value="0001/1/1 0:00:00" />
        </td>
        <td>
            <input id="Checkbox1" type="checkbox" /></td>
    </tr>
    <tr>
        <td>
            PB150122123322
        </td>
        <td>
            南通亚盛风机有限公司
        </td>
        <td>
            SC14-001
        </td>
        <td>
            风売货款
        </td>
        <td class="fmoney" style="text-align: right">
            8000.00
        </td>
        <td>
        </td>
        <td>
            <input type="text" class="PayMent"  value="0" onkeyup="this.value=clearNoNum(this)"/>
        </td>
        <td>
            <input type="text" />
        </td>
        <td>
            <input type="text" value="0001/1/1 0:00:00" />
        </td>
        <td>
            <input id="Checkbox1" type="checkbox" /></td>
    </tr>
    <tr>
        <td>
            PB150122143227
        </td>
        <td>
            山东星苑锌业科技有限公司
        </td>
        <td>
            YL14-001
        </td>
        <td>
            金精矿01
        </td>
        <td class="fmoney" style="text-align: right">
            100.00
        </td>
        <td>
        </td>
        <td>
            <input type="text" class="PayMent"  value="0" onkeyup="this.value=clearNoNum(this)"/>
        </td>
        <td>
            <input type="text" />
        </td>
        <td>
            <input type="text" value="0001/1/1 0:00:00" />
        </td>
        <td>
            <input id="Checkbox1" type="checkbox" /></td>
    </tr>
    <tr>
        <td>
            PB150122143227
        </td>
        <td>
            山东星苑锌业科技有限公司
        </td>
        <td>
            YL14-002
        </td>
        <td>
            金精矿02
        </td>
        <td class="fmoney" style="text-align: right">
            200.00
        </td>
        <td>
        </td>
        <td>
            <input type="text" class="PayMent"  value="0" onkeyup="this.value=clearNoNum(this)"/>
        </td>
        <td>
            <input type="text" />
        </td>
        <td>
            <input type="text" value="0001/1/1 0:00:00" />
        </td>
        <td>
            <input id="Checkbox1" type="checkbox" /></td>
    </tr>
    <tr>
        <td>
            PB150122143227
        </td>
        <td>
            山东星苑锌业科技有限公司
        </td>
        <td>
            YL14-003
        </td>
        <td>
            金精矿03
        </td>
        <td class="fmoney" style="text-align: right">
            300.00
        </td>
        <td>
        </td>
        <td>
            <input type="text" class="PayMent"  value="0" onkeyup="this.value=clearNoNum(this)"/>
        </td>
        <td>
            <input type="text" />
        </td>
        <td>
            <input type="text" value="0001/1/1 0:00:00" />
        </td>
        <td>
            <input id="Checkbox1" type="checkbox" /></td>
    </tr>
    <tr>
        <td>
            PB150122143227
        </td>
        <td>
            山东星苑锌业科技有限公司
        </td>
        <td>
            YL14-004
        </td>
        <td>
            金精矿04
        </td>
        <td class="fmoney" style="text-align: right">
            400.00
        </td>
        <td>
        </td>
        <td>
            <input type="text" class="PayMent"  value="0" onkeyup="this.value=clearNoNum(this)"/>
        </td>
        <td>
            <input type="text" />
        </td>
        <td>
            <input type="text" value="0001/1/1 0:00:00" />
        </td>
        <td>
            <input id="Checkbox1" type="checkbox" /></td>
    </tr></table>代码应该可以优化

解决方案 »

  1.   

    我什么弄,合计都不行,只计算第一条计录
    <script>
        $(document).ready(function () {
            $(function () {
                var list = [1, 2, 6, 7, 8, 9, 10].sort(function (a, b) {
                    if (a == b) return 0;
                    return a > b ? -1 : 1;
                });
                var last = [null, '...'];
                var sum = 0;//
                $('#process_ tr').each(function () {
                    var v = $(this).find('td:eq(0)').text();
                    var vsun = $(this).find('td:eq(4)').text()
                    if (v == last[1]) {
                        for (var i = 0; i < list.length; i++) {
                            
                            sum += parseFloat(vsun);
                            var k = list[i] - 1;
                            last[0].find('td').eq(k).attr('rowspan', last[0].find('td').eq(k).attr('rowspan') + 1);
                            $(this).find('td').eq(k).remove();
                        }
                        $(this).find('td').eq(5).html(sum);
                    }
                    else {
                        last = [$(this), v];                    sum = parseFloat($(this).find('td').eq(4).html());//
                        $(this).find('td').eq(5).html(sum);//                }
                });        });
        });
    </script>
      

  2.   

    $(function() {
      var list = [1, 2, 6, 7, 8, 9, 10].sort( function(a, b) {
        if(a == b) return 0;
        return a > b ? -1 : 1;
      });
      var last = [null, '...'];
      $('#process_ tr').each(function() {
        var v = $(this).find('td:eq(0)').text();
        if(v == last[1]) {
          for(var i=0; i<list.length; i++) {
            var k = list[i]-1;
            last[0].find('td').eq(k).prop('rowspan', last[0].find('td').eq(k).prop('rowspan')+1);
            $(this).find('td').eq(k).remove();
            if(k == 5) { //如果是在处理合计列
              var sum = parseFloat(last[0].find('td').eq(k).html()) + parseFloat($(this).find('td').eq(4).html());
              last[0].find('td').eq(k).html(sum.toFixed(2));
            }
          }
        }else {
          last = [$(this), v];
          $(this).find('td:eq(5)').html($(this).find('td:eq(4)').html()); //把金额赋给合计
        }
      });
    });