我可以使用 jQuery 成功隐藏一些表格单元格。然后当我测量隐藏单元格的高度时,如果不隐藏单元格将占据的空间显示为空白空间,将该行中的所有剩余单元格推过一列。就好像单元格被重新插入到表格流中,但它的内容是隐藏的。下面的示例演示了该问题。单击“隐藏第 2 列”,然后单击“测量第 1 行第 2 列”以查看它的发生。示例代码是独立的 - 只需将其保存为 HTML 文件即可。
这会影响 FF3 和 Chrome,但不会影响 IE7。
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("a.clickToHide").click(function() {
$(".col2").hide();
});
$("a.clickToMeasure").click(function() {
$("span.result").text($("tr.row1 td.col2").height());
});
});
</script>
</head>
<body>
<table>
<thead>
<tr>
<th class="col1"> Column 1 </th>
<th class="col2"> Column 2 </th>
<th class="col3"> Column 3 </th>
</tr>
</thead>
<tbody>
<tr class="row1">
<td class="col1"> Column 1 </th>
<td class="col2"> Column 2 </th>
<td class="col3"> Column 3 </th>
</tr>
<tr class="row2">
<td class="col1"> Column 1 </th>
<td class="col2"> Column 2 </th>
<td class="col3"> Column 3 </th>
</tr>
</tbody>
</table>
<a class="clickToHide" href="#">Click to hide column 2</a> <br />
<a class="clickToMeasure" href="#">Click to measure row 1 column 2</a> <br />
<span class="result"></span>
</body>