Come contare il numero di elementi tr all'interno di una tabella usando jQuery?
So che c'è una domanda simile , ma voglio solo le righe totali.
Come contare il numero di elementi tr all'interno di una tabella usando jQuery?
So che c'è una domanda simile , ma voglio solo le righe totali.
Risposte:
Utilizzare un selettore che selezionerà tutte le righe e prenderà la lunghezza.
var rowCount = $('#myTable tr').length;
Nota: questo approccio conta anche tutte le tr di ogni tabella nidificata!
Se usi <tbody>
o <tfoot>
nella tua tabella, dovrai usare la sintassi seguente o otterrai un valore errato:
var rowCount = $('#myTable >tbody >tr').length;
In alternativa ...
var rowCount = $('table#myTable tr:last').index() + 1;
Ciò garantirà che anche le righe di tabella nidificate non vengano conteggiate.
var rowCount = $('table#myTable tr:last').index() + 1;
<thead>
righe e le righe della tabella nidificate. Bello. jsfiddle.net/6v67a/1576
<td>
ha una tabella interna, restituisce il conteggio delle righe di quella tabella !!jsfiddle.net/6v67a/1678
Bene, ottengo le righe attr dalla tabella e ottengo la lunghezza per quella raccolta:
$("#myTable").attr('rows').length;
Penso che jQuery funzioni di meno.
Ecco la mia opinione su di esso:
//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;
};
USO:
var rowCount = $('#productTypesTable').rowCount();
Ho ottenuto il seguente:
jQuery('#tableId').find('tr').index();
prova questo se c'è il corpo
Senza intestazione
$("#myTable > tbody").children.length
Se c'è un'intestazione allora
$("#myTable > tbody").children.length -1
Godere!!!
<thead>
cui dovrebbe venire prima <tbody>
. Quindi il -1 non dovrebbe essere necessario, se la tabella è stata progettata correttamente secondo lo standard.
Avevo bisogno di un modo per farlo in un ritorno AJAX, quindi ho scritto questo pezzo:
<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>
Ovviamente questo è un rapido esempio, ma può essere utile.
row_count = $('#my_table').find('tr').length;
column_count = $('#my_table').find('td').length / row_count;
var trLength = jQuery('#tablebodyID >tr').length;