【问题标题】:Get count of rows in each table while having more than 1 tables在拥有超过 1 个表时获取每个表中的行数
【发布时间】:2012-09-22 09:16:33
【问题描述】:

我在同一页面上有多个表格,并希望添加每个表格的行显示计数,如下所示。 我尝试了一些东西,但它给出了所有表格行的总数。

<table>
 <tr>
   <td>Some data</td>
   <td>More data</td>
 </tr>
 <tr>
   <td>Some data</td>
   <td>More data</td>
 </tr>
</table>

<table>
 <tr>
   <td>Some data</td>
   <td>More data</td>
 </tr>
 <tr>
   <td>Some data</td>
   <td>More data</td>
 </tr>
</table>

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
 $().ready(function(){

  //I want to add a line after each table showing each table row count
  $("table").after(??? + " rows found.");
 });
</script>

【问题讨论】:

    标签: jquery


    【解决方案1】:
    $("table").each(function(){
        $(this).after($(this).find('tr').length + " rows found.");    
    })
    

    Working Fiddle

    【讨论】:

    • 这是在两个表之后给出所有表中的行总和(4)。
    • 是的..我第一次没有正确阅读您的问题..然后立即更改..如果您在该代码中将函数传递给after..它会给出正确的结果..
    【解决方案2】:

    根据需要,不使用.each() 循环,仅使用after()

    $("table").after(function(){
        return $('tr', this).length + " rows found.";    
    });
    

    The demo

    【讨论】:

      【解决方案3】:

      这个呢?

      $("table").each(function(){
          $(this).after($(this).find('tr').length + " rows found.")
      });
      

      编辑

      要在最后一个表之后从两个表中获取总数:

      $('table:last').after($('tr').length + " rows found.")
      

      【讨论】:

      • 返回所有表中的行总和,而不是每个表中的行总和。
      • 对不起。误解了你最初的帖子。尝试这个? $('table:last').after($('tr').length + " rows found.")
      【解决方案4】:

      您可以像这样很容易地获得行数:

      // loop over all tables
      $("table").each(function(){ 
          // get number of rows, uses jQuery's context parameters to speed things up
          // (it is apparently somewhat faster than using 'find' in most cases)
          var nrOfRows = $("tr", this).length;
      
          $(this).after(nrOfRows + " rows found");
      });
      

      Working DEMO

      更新 当然,您可以用更少的行来完成,我将其拆分为使用 cmets 使其更清晰。你可以写:

      $("table").each(function(){ 
          $(this).after($("tr", this).length + " rows found");
      });
      

      【讨论】:

        【解决方案5】:

        我建议:

        ​$('table tbody').each(
            function(){
                var tfoot = $('<tfoot />', {'class' : 'rowSummary'}).insertBefore($(this)),
                    tr = $('<tr />').appendTo(tfoot),
                    len = $(this).find('tr').length,
                    cell = $('<td />',{'colspan' : '2' }).text(len).appendTo(tr);
            });​​​​​​​​​​​​​
        

        JS Fiddle demo.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-23
          • 1970-01-01
          • 2019-06-25
          • 1970-01-01
          相关资源
          最近更新 更多