【问题标题】:Select every visible last child in jQuery在jQuery中选择每个可见的最后一个孩子
【发布时间】:2013-09-05 21:21:50
【问题描述】:

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

这不起作用,因为它试图选择最后一个孩子如果它是可见的:

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

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

有没有更简单的方法?有这样的东西吗?

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

【问题讨论】:

  • 第一个也不是有效的语法。

标签: jquery css-selectors


【解决方案1】:

你可以做到的:

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

查看full example(兼容 jQuery 1.2+)

【讨论】:

  • 谢谢!这正是我想要的。
【解决方案2】:

要让每一个最后可见的它们你可以做类似的事情

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

【讨论】:

    【解决方案3】:

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

    该死,只有在行的中间没有任何隐形物时才有效。

    【讨论】:

    • 如果一组 标签在可见性中交替出现(例如 0101010),选择“所有可见标签没有可见的后续标签”将选择所有可见标签,而不仅仅是最后一个。相反,使用 nextUntil()。 api.jquery.com/nextUntil
    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-04-26
      • 2019-03-28
      • 1970-01-01
      • 2019-10-01
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      • 2019-02-18
      相关资源
      最近更新 更多