在jQuery中选择每个可见的最后一个孩子

我想在表中的每个tr中得到最后一个可见的 td

这不起作用,因为它尝试选择最后一个子项是否可见:

 var last_visible_cells = $(table).find("tr td:visible:last-child"); 

到目前为止,我想到的最简单的方法是使用.each循环遍历tr元素,并将每个最后一个可见的td附加到新的选择器列表中。

有更简单的方法吗? 有这样的事吗?

 var last_visible_cells = $(table).find("tr").lastMatching("td:visible"); 

你能行的:

 $('table tr').find('td:visible:last').addClass('last-visible'); 

查看完整示例 (jQuery 1.2+兼容)

为了得到最后的可见,你可以做类似的事情

 $('table tr').each(function(){ console.log($(this).find('td:visible:last')) }) 

您想要抓取所有TD并仅过滤那些旁边没有可见元素的TD。

Dang,只有在行中间没有任何隐形时才有效。

基于Mathletics的答案,但使用nextUntil() 。 这会查找每个可见标记,这些标记没有以下可见标记。

 $('table tr').children('td').filter(function() { return $(this).is(':visible') && $(this).nextUntil(':visible').length === 0; })