if ( $("table tbody tr:visible").length === 0 ) {
$("table thead").hide();
} else {
$("table thead").show();
}
我想隐藏所有thead
元素中的table
元素,其中所有tbody
仅包含隐藏的tr
元素。
上面的代码适用于一个表,但不适用于多个表。我有很多表,此代码一次搜索所有表中的所有tbody tr
,而不是每个表都单独搜索。
我需要获取$("table").length
并检查每个可见的tr
吗?有没有更简单的解决方案?
答案 0 :(得分:0)
您必须能够标识刚刚处理的表。我们可以使用以下各项来做到这一点:
$("table").each(){
var myTable = $(this);
if ( myTable.find("tbody tr:visible").length === 0) {
myTable.find("thead").hide();
}
else {
myTable.find("thead").show();
}
}
答案 1 :(得分:0)
您也可以在没有显式循环的情况下完成此操作。 jQuery的:has()
选择器可以在一行中为您完成这项工作。
$("table:not(:has(tbody tr:visible)) thead").hide();
使用此方法,您可以直接查询其父表在其thead
中不包含任何可见tr
元素的所有tbody
元素。
您可以在here中看到它。