2011-11-17 17 views

Respuesta

13

puede usar el selector: visible.

$('tr:visible').length; 

aquí es un violín que demuestra esto:

http://jsfiddle.net/cX6jb/

+0

doesn no funciona en IE8 – Yaje

+0

¿qué versión estás usando? había un error en jquery muy antiguo, pero se solucionó en 1.4.2 Creo que – Patricia

5

El :visible selector sólo seleccionará los elementos visibles.

var count = $('#your-table tr:visible').length; 

jsFiddle Demo

Si ya tiene una variable que contiene sus filas, también se puede utilizar el método filter.

var $rows = $('#your-table tr'), 
    visibleCount = $rows.filter(':visible').length; 
3
$('tr').filter(':visible').length 

Tada! Nota: Visible es un selector de jQuery, por lo que es mucho más rápido obtener sus elementos usando un selector CSS válido y luego filtrarlos.

:visible

+0

dará la longitud de todas las cosas dentro del tr que son visibles. entonces, si cada fila tiene 2 td, regresará 4. definitivamente no es lo que quieren. – Patricia

+0

@Patricia Excelente punto, quise decir 'filter()', gracias – Andrew

1

es probable que haya una manera más fácil, pero se puede hacer esto

var a = $('tr').length; 
var b = $('tr[style="display:none;"]').length; 
alert(a - b); 

Ejemplo: http://jsfiddle.net/YV3cy/

1

Si se entera de tabla específica hacer esto

$("#tableid tr:visible").length 
Cuestiones relacionadas