Frage

Wie kann ich die Anzahl der tr-Elemente innerhalb einer Tabelle zählen mit jQuery?

Ich weiß, es ist ein ähnliche Frage , aber ich will nur die Summe der Zeilen.

War es hilfreich?

Lösung

einen Selektor verwenden, die alle Zeilen auswählt und die Länge nehmen.

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

Hinweis: dieser Ansatz zählt auch alle trs jeder verschachtelten Tabelle

Andere Tipps

Wenn Sie <tbody> oder <tfoot> in Ihrer Tabelle verwenden, werden Sie die folgende Syntax verwenden müssen, oder Sie werden einen falschen Wert erhalten:

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

Alternativ ...

var rowCount = $('table#myTable tr:last').index() + 1;

jsFiddle DEMO

Dadurch wird sichergestellt, dass alle verschachtelten Tabellenzeilen werden nicht mitgezählt.

Nun, ich bekomme die attr Zeilen aus der Tabelle und erhalte die Länge für diese Sammlung:

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

Ich denke, dass jQuery arbeitet weniger.

Hier ist mein nehmen auf sie:

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

Verwendung:

var rowCount = $('#productTypesTable').rowCount();

Ich habe folgende Möglichkeiten:

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

ich brauchte eine Möglichkeit, dies in einer AJAX-Rückkehr zu tun, so schrieb ich dieses Stück:

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

Natürlich ist dies ein kleines Beispiel, aber es kann hilfreich sein.

Ich fand das wirklich gut zu funktionieren, wenn Sie Zeilen zählen mögen, ohne den th zu zählen und alle Zeilen aus Tabellen innerhalb von Tabellen:

var rowCount = $("#tableData > tbody").children().length;
  

versuchen Sie dieses, wenn es tbody ist

Ohne Header

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

Wenn es Header dann

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

Genießen Sie !!!

row_count =  $('#my_table').find('tr').length;
column_count =  $('#my_table').find('td').length / row_count;

var trLength = jQuery('#tablebodyID >tr').length;

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top