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

时间:2011-12-13 21:42:53

标签: jquery css-selectors

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

这不起作用,因为它尝试选择最后一个

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

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

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

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

4 个答案:

答案 0 :(得分:20)

你可以这样做:

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

请参阅full example(兼容jQuery 1.2+)

答案 1 :(得分:2)

为了让每个人都能看到它们,你可以做一些像

这样的事情
$('table tr').each(function(){
    console.log($(this).find('td:visible:last'))
})

答案 2 :(得分:0)

你想抓住所有的TD并过滤掉那些旁边没有可见元素的TD。

Dang,只有在行中间没有任何不可见的情况下才有效。

答案 3 :(得分:0)

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

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