Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 当有多个表时,获取每个表中的行数_Jquery - Fatal编程技术网

Jquery 当有多个表时,获取每个表中的行数

Jquery 当有多个表时,获取每个表中的行数,jquery,Jquery,我有多个表在同一页上,并希望添加一行显示每个表的计数,如下所示。 我尝试了一些东西,但它给出了所有表行的计数总和 <table> <tr> <td>Some data</td> <td>More data</td> </tr> <tr> <td>Some data</td> <td>More data</td> </

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

<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>

一些数据
更多数据
一些数据
更多数据
一些数据
更多数据
一些数据
更多数据
$().ready(函数()){
//我想在每个表后添加一行,显示每个表的行数
$(“表格”)。在(??+“找到行”);
});

您可以很容易地获得行计数,如下所示:

// 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");
});

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

$("table").each(function(){ 
    $(this).after($("tr", this).length + " rows found");
});
这个怎么样

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

要在最后一个表之后从两个表中获取总计,请执行以下操作:

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

​$('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);
    });​​​​​​​​​​​​​
​$(“表体”)。每个(
函数(){
var tfoot=$('',{'class':'rowSummary'}).insertBefore($(this)),
tr=$('').appendTo(tfoot),
len=$(this.find('tr').length,
单元格=$('',{'colspan':'2'}).text(len).appendTo(tr);
});​​​​​​​​​​​​​


这是在两个表之后给出所有表(4)中行的总和。是的..我第一次没有正确阅读你的问题..然后更改了..如果你在该代码中将函数传递到
之后..它将给出正确的结果..返回所有表中的行总和而不是每个表中的行总和。抱歉。误解了你最初的帖子。试试这个<代码>$('table:last')。在($('tr')之后。长度+“找到行”)
​$('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);
    });​​​​​​​​​​​​​
$("table").after(function(){
    return $('tr', this).length + " rows found.";    
});