jQuery:统计表中的行数

jQuery:统计表中的行数,jquery,count,row,Jquery,Count,Row,如何使用jQuery计算表中tr元素的数量 我知道有,但我只想要总行数。使用选择器选择所有行并计算长度 var rowCount = $('#myTable tr').length; 注意:此方法还统计每个嵌套表的所有TR 如果在表中使用或,则必须使用以下语法,否则会得到不正确的值: var rowCount = $('#myTable >tbody >tr').length; 我从表中获取attr行并获取该集合的长度: $("#myTable").attr('rows').le

如何使用jQuery计算表中tr元素的数量


我知道有,但我只想要总行数。

使用选择器选择所有行并计算长度

var rowCount = $('#myTable tr').length;
注意:此方法还统计每个嵌套表的所有TR

如果在表中使用或,则必须使用以下语法,否则会得到不正确的值:

var rowCount = $('#myTable >tbody >tr').length;

我从表中获取attr行并获取该集合的长度:

$("#myTable").attr('rows').length;

我认为jQuery的工作效率较低。

我需要一种在AJAX返回中实现这一点的方法,所以我写了这篇文章:

<p id="num_results">Number of results: <span></span></p>

<div id="results"></div>

<script type="text/javascript">
$(function(){
    ajax();
})

//Function that makes Ajax call out to receive search results
var ajax = function() {
    //Setup Ajax
    $.ajax({
        url: '/path/to/url', //URL to load
        type: 'GET', //Type of Ajax call
        dataType: 'html', //Type of data to be expected on return
        success: function(data) { //Function that manipulates the returned AJAX'ed data
            $('#results').html(data); //Load the data into a HTML holder
            var $el = $('#results'); //jQuery Object that is holding the results
            setTimeout(function(){ //Custom callback function to count the number of results
                callBack($el);
            });
        }
    });
}

//Custom Callback function to return the number of results
var callBack = function(el) {
    var length = $('tr', $(el)).not('tr:first').length; //Count all TR DOM elements, except the first row (which contains the header information)
    $('#num_results span').text(length); //Write the counted results to the DOM
}
</script>
显然,这是一个快速的示例,但可能会有所帮助。

或者

var rowCount = $('table#myTable tr:last').index() + 1;
这将确保不计算任何嵌套表行。

以下是我的看法:

//Helper function that gets a count of all the rows <TR> in a table body <TBODY>
$.fn.rowCount = function() {
    return $('tr', $(this).find('tbody')).length;
};
我得到以下信息:

jQuery('#tableId').find('tr').index();

我发现,如果要在不计算第th行和表内表中的任何行的情况下计算行数,则此方法非常有效:

var rowCount = $("#tableData > tbody").children().length;
如果有人,试试这个

无标题

$("#myTable > tbody").children.length
如果有标题,那么

$("#myTable > tbody").children.length -1


享受

var trLength=jQuery'tablebodyID>tr'.length

$'myTable tr'.size将返回相同的值。@Garry-文档表明长度比大小更可取,因为它更快。..size调用.length内部它有一个length属性,因为它是数组。我对jQuery的历史了解不够,无法知道jQuery对象是否总是扩展数组。这也会在thead…$中计算trmyTable tbody tr'长度;将仅在表体中计算..+1-适用于传递包含表的元素的场景,例如var rowCount=$element.attr'rows'.length;使用jqueryv1.9.0,我必须使用prop访问“rows”:$myTable.prop'rows.length;Chromium 24我正在使用,但得到了相同的值Use$'myTable>tbody:last>tr'.length@DevlshOne如果不是真的,长度不是零基数,请检查文档:当您有嵌套表时,这将只计算指定表中的行数,这是我所需要的。@user12379095类似于这样的内容:加1获得行数,因为索引返回-1。聪明,谢谢。它们虽然不多,但聪明的解决方案确实时不时地出现。var rowCount=$'tablemyTable tr:last'。index+1;忽略行和嵌套表行。美好的如果Last有内部表,它将返回该表的行数!!非常好的函数@Ricky G,对做一些事情很有用。例如,对于从后端生成的html,也可以调用该函数,而不是dom。。ThanksIt在chidlren=>$myTable>tbody.children.Length之后缺失标题应包含在前面的标题中。因此,如果表是根据标准正确设计的,则不需要-1。问题是,当datatable没有记录时,它将长度显示为1,因为datatable在datatable中呈现一个类为奇数的空行……我在UserScript上有一个动态表,这是唯一有效的解决方案如何修改它以计算列?
$("#myTable > tbody").children.length -1
row_count =  $('#my_table').find('tr').length;
column_count =  $('#my_table').find('td').length / row_count;