sac*_*024 10 html-table cells hide
我想在表格中隐藏空单元格.这是我的代码:
$(function() {
$(".empty").each(hideCellIfEmpty);
});
function hideCellIfEmpty() {
var theCell = $(this);
if (theCell.html().length == 0) {
hideSoft(theCell);
}
}
function hideSoft(jQElement) {
jqElement.css('visibility', 'hidden');
}Run Code Online (Sandbox Code Playgroud)
table.empty {
width: 350px;
border-collapse: collapse;
empty-cells: hide;
}
td.empty {
border-style: solid;
border-width: 1px;
border-color: blue;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<table class="empty">
<tr>
<th></th>
<th>Title one</th>
<th>Title two</th>
</tr>
<tr>
<th>Row Title</th>
<td class="empty">value</td>
<td class="empty">value</td>
</tr>
<tr>
<th>Row Title</th>
<td class="empty">value</td>
<td class="empty"></td>
</tr>
</table>Run Code Online (Sandbox Code Playgroud)
你可以看到,第二行显示空单元格.但我想隐藏它.而且,我不想用border-collapse:separate.是否可以使用隐藏空单元格border-collapse:collapse?我也想知道为什么这会显示空单元格.
PS使用border-collapse: separate正在工作,不显示空单元格.
$(function() {
$(".empty").each(hideCellIfEmpty);
});
function hideCellIfEmpty() {
var theCell = $(this);
if (theCell.html().length == 0) {
hideSoft(theCell);
}
}
function hideSoft(jQElement) {
jqElement.css('visibility', 'hidden');
}Run Code Online (Sandbox Code Playgroud)
table.empty {
width: 350px;
border-collapse: separate;
empty-cells: hide;
}
td.empty {
border-style: solid;
border-width: 1px;
border-color: blue;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<table class="empty">
<tr>
<th></th>
<th>Title one</th>
<th>Title two</th>
<th>Title three</th>
</tr>
<tr>
<th>Row Title</th>
<td class="empty">value</td>
<td class="empty">value</td>
<td class="empty">value</td>
</tr>
<tr>
<th>Row Title</th>
<td class="empty">value</td>
<td class="empty"></td>
<td class="empty">value</td>
</tr>
</table>Run Code Online (Sandbox Code Playgroud)
但这并没有回答这些问题:
为何使用空单元格border-collapse: collapse?
使用时为什么不显示空单元格border-collapse: separate?
小智 18
如果您的站点不需要IE 8及以下版本的支持,您可以使用CSS :empty伪类:
td:empty {
visibility: hidden;
}
Run Code Online (Sandbox Code Playgroud)
table.empty {
width: 350px;
border-collapse: collapse;
empty-cells: hide;
}
td.empty {
border-style: solid;
border-width: 1px;
border-color: blue;
}
td:empty {
visibility: hidden;
}Run Code Online (Sandbox Code Playgroud)
<table class="empty">
<tr>
<th></th>
<th>Title one</th>
<th>Title two</th>
</tr>
<tr>
<th>Row Title</th>
<td class="empty">value</td>
<td class="empty">value</td>
</tr>
<tr>
<th>Row Title</th>
<td class="empty">value</td>
<td class="empty"></td>
</tr>
</table>Run Code Online (Sandbox Code Playgroud)
有关:empty伪类的更多信息,请访问https://developer.mozilla.org/en-US/docs/Web/CSS/:empty