【发布时间】:2009-09-01 16:01:47
【问题描述】:
我有一个用于显示数据的嵌套表格排列。我希望嵌套表位于跨越所有父表列的 TD 中。所以我设置了colspan。但是,我也希望用户能够单击父级来隐藏/取消隐藏子级数据。这在 IE8 中运行良好,但在 FireFox 和 Chrome 中,嵌套表忽略了 colspan,并且只播种在第一列中。
下面的代码是该问题的一个示例。如果您单击第一列文本,您会明白我的意思。最后一行数据没有分类,因此在页面加载时显示正常,但是一旦设置了类,它就会再次出错。
有什么想法吗?
谢谢。
<!DOCTYPE html PUBLIC "-//W3C//thD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/thD/xhtml1-transitional.thd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<script type="text/javascript">
function expandRow(rowID, clickRow)
{
var item = document.getElementById(rowID);
if(item.className=='hidden'){
item.className = 'unhidden';
}else{
item.className = 'hidden';
}
}
</script>
<style type="text/css">
.hidden { display: none; }
.unhidden { display: block; }
</style>
<title>Table Test</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Col1</th>
<th>Col2</th>
<th>Col3</th>
<th>Col4</th>
</tr>
</thead>
<tbody>
<tr>
<td class="collapsed" onclick="expandRow('id30', this);">Click Here to Expand</td>
<td>data1</td>
<td>data2</td>
<td>data3</td>
</tr>
<tr class="hidden" id="id30">
<td colspan="4">
<table>
<tbody>
<tr>
<td>data1</td>
<td>data2</td>
<td>data3</td>
<td>data4</td>
<td>data5</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td class="collapsed" onclick="expandRow('id95', this);">Click Here to Expand</td>
<td>data1</td>
<td>data2</td>
<td>data3</td>
</tr>
<tr class="hidden" id="id95">
<td colspan="4">
<table>
<tbody>
<tr>
<td>data1</td>
<td>data2</td>
<td>data3</td>
<td>data4</td>
<td>data5</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td class="collapsed" onclick="expandRow('id96', this);">Click Here to Expand</td>
<td>This one</td>
<td>displays ok</td>
<td>until you set the class!</td>
</tr>
<tr id="id96">
<td colspan="4">
<table>
<tbody>
<tr>
<td>data1</td>
<td>data2</td>
<td>data3</td>
<td>data4</td>
<td>data5</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</body>
</html>
【问题讨论】:
标签: javascript html firefox internet-explorer google-chrome