我有以下jQuery,它就像一个魅力:
$('#planCompareTable > tbody > tr').each(function() {
if ($(this).find('td:nth-child(2)').hasClass('noValue') && $(this).find('td:nth-child(3)').hasClass('noValue')) {
$(this).hide();
}
}
我正在查看特定的表,循环遍历每一行,检查该行中的单元格2和3是否为noValue
,并隐藏该行(如果存在)。大。
我现在的问题是,我不知道这个表会有多少列,但是我需要继续检查该类的每一行中的每一列之后的每一列,如果&只有当第一个以外的所有细胞都有这个类时。
我尝试将第二行更新为if ($(this).find('td:not(:first)').each(hasClass('noValue')))
,但如果找到类noValue
的任何单元格,它将隐藏整行,而不管该行中其他单元格的状态如何。< / p>
我的假设是我需要在这里使用嵌套的each()函数,但我不确定如何执行此操作。
答案 0 :(得分:1)
您可以计算noValue
个单元格的数量,如果它小于总单元格数量,则隐藏该行。
$('#planCompareTable > tbody > tr').each(function(){
var $row = $(this);
var allNoValue = ($row.find("td.noValue").length == ($row.find("td").length-1));
if(allNoValue) $row.hide();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="planCompareTable">
<tbody>
<tr>
<td>row1</td>
<td class="noValue"></td>
<td class="noValue"></td>
</tr>
<tr>
<td>row2</td>
<td class="noValue"></td>
<td class=""></td>
</tr>
</tbody>
</table>
&#13;