在隐藏了一些行的表中,我想获取下一个可见行(如果存在)。这将完成这项工作:
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 - 使用 jQuery 高效查找下一个可见的表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8495170/