2011-11-17 25 views
8

Tôi muốn đếm số hàng trong bảng không bị ẩn. Tôi có thể biết một hàng có bị ẩn hay không bằng cách kiểm tra kiểu của thuộc tính tr: <tr style="display: none; ">. Làm thế nào để bạn tính toán này bằng cách sử dụng jquery?Nhận số hàng không bị ẩn trong một bảng

Trả lời

13

bạn có thể sử dụng công cụ chọn: hiển thị.

$('tr:visible').length; 

đây là một fiddle chứng minh điều này:

http://jsfiddle.net/cX6jb/

+0

doesn 't làm việc trên IE8 – Yaje

+0

bạn đang sử dụng phiên bản nào? đã có một lỗi trong jquery rất cũ, nhưng nó đã được cố định trong 1.4.2 tôi tin rằng – Patricia

5

Các :visible selector sẽ chỉ chọn các mục có thể nhìn thấy.

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

jsFiddle Demo

Nếu bạn đã có một biến chứa hàng của bạn, bạn cũng có thể sử dụng phương pháp filter.

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

Tada! Lưu ý: Hiển thị là một bộ chọn jQuery, do đó, nó nhanh hơn nhiều để có được các phần tử của bạn bằng cách sử dụng một bộ chọn css hợp lệ rồi lọc chúng.

:visible

+0

mà sẽ cung cấp cho chiều dài tất cả những thứ bên trong tr được hiển thị. vì vậy, nếu mỗi hàng có 2 td nó sẽ trở lại 4. chắc chắn không phải những gì họ muốn. – Patricia

+0

@Patricia Điểm tuyệt vời, ý tôi là 'filter()', cảm ơn – Andrew

1

Có lẽ là một cách dễ dàng hơn, nhưng bạn có thể làm điều này

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

Ví dụ: http://jsfiddle.net/YV3cy/

1

Nếu bạn tìm hiểu bảng cụ thể thực hiện điều này

$("#tableid tr:visible").length 
Các vấn đề liên quan