如果行包含空列,请隐藏行

我有一个有几行的表,每行有两列,第一列将保持标题,第二列将具有相应的值。有时,右边的单元格可能没有值,所以它没有意义只有标题..没有价值..我可以隐藏左侧单元格上的标题,右侧或整行本身没有值。

我想出了这个,但它不起作用..

$('.EventDetail tr').each(function(){ if(!$('td:not(:empty)',this).length) $(this).hide(); }); 

这是表格。 我想知道标签是否有任何区别。 或者其中一个有一个类而另一个没有..应该导致它不起作用?

 
Who Should Enroll?: Everyone 18 and older who would like to attend
Handicapped Access: Yes
Parking Notes:
Instructor: John Filler

所以没有停车记录信息,所以我想隐藏包含标题“停车笔记”的左侧单元格。

我认为这会奏效:

 $('.EventDetail tr').has('td:nth-child(2):empty').hide() 

你可以在jsFiddle上试试 。

试试这个:

 $('.EventDetail tr').each(function(){ if ($('td:empty',this).length > 0)) $(this).hide(); }); 

对于示例中的任何行,您的选择器将使if语句永远不为true。 $("td:not(:empty)")总是选择带有标题的

元素,因此length始终为1if(!1)永远不是真的。

您应该删除双阴影( !:not )以使其更清晰,然后检查长度(即匹配元素的数量)是否> 0

你可以试试这个:

  $(document).ready(function(){ $('.EventDetail tr').each(function(){ if ( $(this).children().not('.TableFields').text().length == 0 ) $(this).hide(); }); });