如果行包含空列,则隐藏该行
Hide row if it contains empty columns
我有一个表,它有几行,每行有两列,第一列有标题,第二列有相应的值。有时,右边的单元格可能没有值,所以只有标题是没有意义的。。没有值。。我可以隐藏右边没有值的左边单元格的标题,也可以隐藏整行本身。
我想出了这个主意,但不起作用。。
$('.EventDetail tr').each(function(){
if(!$('td:not(:empty)',this).length)
$(this).hide();
});
这是桌子。我想知道标签是否有什么不同。或者其中一个有课,另一个没有。。这应该导致它不起作用吗?
<table cellpadding="10" class ="EventDetail">
<tr>
<td class="TableFields"><em>Who Should Enroll?:</em></td>
<td>Everyone 18 and older who would like to attend</td>
</tr>
<tr>
<td class="TableFields"><em>Handicapped Access:</em></td>
<td>Yes</td>
</tr>
<tr>
<td class="TableFields"><em>Parking Notes:</em></td>
<td></td>
</tr>
<tr>
<td class="TableFields"><em>Instructor:</em></td>
<td>John Filler</td>
</tr>
</table>
所以没有停车笔记信息,所以我想隐藏包含标题"停车笔记"的左侧单元格。
我认为这会起作用:
$('.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)")
总是选择具有标题的<td>
元素,因此长度总是1
。if(!1)
从来都不是真的。
您应该删除双负(!
和:not
)以使其更清晰,然后检查长度(即匹配元素的数量)是否为> 0
。
你可以试试这个:
$(document).ready(function(){
$('.EventDetail tr').each(function(){
if ( $(this).children().not('.TableFields').text().length == 0 )
$(this).hide();
});
});
相关文章:
- HTML提交表单,同时包含空字段检查和按钮隐藏
- Angular Meteor教程ng包含空
- 奇怪的日期()是用包含空字节的字符串创建的
- 包含空字符串的 HTML 属性不显示 = 运算符
- Angularjs:隐藏包含动态参数的网址的导航栏
- 检查 javascript 数组是否不仅包含空值
- JSON 是否应包含空值
- 使用 GWT 将双精度 JS 数组(可能包含空条目)集成到 Java 对象的适当方法
- 提交时隐藏输入空输入
- 在JavaScript中隐藏一个空文本框
- JSON隐藏“;空”;数据
- 如何递归地移除包含空数组的嵌套对象
- JSON正在删除包含空值的属性
- 如果行包含空列,则隐藏该行
- 如何检查文件.getElementbyId包含空值或未定义值
- 如何对包含空字符串、NaN、数字和无穷大的数组进行排序
- 隐藏包含DB信息的图像URL
- 不要在jQuery's $.param()中包含空字符串或null
- 隐藏包含ul + print的子td的tr
- 隐藏包含指定字符串的表行