使用jQuery有效地找到下一个可见的表行

前端之家收集整理的这篇文章主要介绍了使用jQuery有效地找到下一个可见的表行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在隐藏了一些行的表中,我想获得下一个可见行(如果存在).这将完成工作:
row = $(selectedRow).nextAll(':visible');
if ($(row).length > 0)
    selectedRow = row;

但是当所选行跟随许多行时,它会非常慢.脚本方法是:

var row = $(selectedRow).next();
while ($(row).length > 0 && !$(row).is(':visible'))
    row = $(row).next();
if ($(row).length > 0)
    selectedRow = row;

这要快得多,但我必须使用优雅的全jQuery方法.

解决方法

根据mblase75的有用建议,这是我发现的最优雅的解决方案:
var row = $(selectedRow).next(':visible');

if ($(row).length == 0)
    row = $(selectedRow).nextUntil(':visible').last().next();

if ($(row).length > 0)
    selectedRow = row;

通常(在我的情况下),表不会被过滤,因此下一行在很多时候都可见.如果不是,则nextUntil()会产生一组非空的不可见行.选择该集合中的最后一行,然后选择该行后面的下一行,如果有的话,则会在表格中显示下一个可见行.

猜你在找的jQuery相关文章