在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; })