1

我正在使用这个 jquery数据表插件来显示来自数据库的信息。我的表如下所示。现在我正在尝试总结分数(请查看下表)并将它们显示为总分,就像在本网站中给出的示例中一样

<script type="text/javascript" src="js/jquery.dataTables.min.js"></script>
<script type="text/javascript" charset="utf-8">
 $(document).ready(function() {$('#gtable').dataTable();} );
  </script>

<table class="gtable" align="center" id="gtable">
<thead>
 <tr>
    <th>Sl</th>
    <th>Name</th>
    <th>Marks</th>
 </tr>
</thead>

<tbody>
 <tr><td>1</td> <td>Charlie Sheen</td>  <td>20</td></tr>
 <tr><td>2</td> <td>John Cryer</td>     <td>20</td></tr>
 <tr><td>3</td> <td>Jason Stathum</td>  <td>20</td></tr>

</tbody>

</table

该插件的网站提供了以下代码来执行并显示总和,但我仍然不明白如何使用我上面的数据表。

你能帮我解决这个问题吗?

  $(document).ready(function() {
  $('#example').dataTable( {
    "fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {
        /*
         * Calculate the total market share for all browsers in 
          this table (ie inc. outside
         * the pagination)
         */
        var iTotalMarket = 0;
        for ( var i=0 ; i<aaData.length ; i++ )
        {
            iTotalMarket += aaData[i][4]*1;
        }

         /* Calculate the market share for browsers on this page */
        var iPageMarket = 0;
        for ( var i=iStart ; i<iEnd ; i++ )
        {
            iPageMarket += aaData[ aiDisplay[i] ][4]*1;
        }

        /* Modify the footer row to match what we want */
        var nCells = nRow.getElementsByTagName('th');
        nCells[1].innerHTML = parseInt(iPageMarket * 100)/100 +
            '% ('+ parseInt(iTotalMarket * 100)/100 +'% total)';
     }
   } );
  } );
4

2 回答 2

2

功能应该是这样的

$('#example').dataTable( {
  "fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {

    var TotalMarks = 0;
    for ( var i=0 ; i<aaData.length ; i++ )
    {
        TotalMarks += aaData[i][2]*1;
    }

    var nCells = nRow.getElementsByTagName('th');
    nCells[1].innerHTML = TotalMarks;
  }
});

希望这会有所帮助。

于 2012-09-02T08:20:02.923 回答
1

非常简单:

var sum = 0;
$("#gtable tbody tr").each(function(){
    sum += $(this).find("td").eq(3).text();
});

未经测试,如果您有问题,请告诉我。

说明:这里的基本情况是,我们在 的范围之外初始化了一个变量“sum” $.each,jQuery 每个都允许您遍历所有匹配条件的元素,在这种情况下,表体中属于#gtable 的所有表行,然后,我们所做的是,我们在每一行中找到第 3 个 td,并将​​其添加到总和中,因为 JavaScript 是一种动态类型的语言 - 可以这样做。

现在在变量“总和”中,我们有所有的标记总和。

于 2012-09-02T08:22:53.643 回答