gpt4 book ai didi

javascript - 在 HR 上设置类别会破坏 TD colspan

转载 作者:行者123 更新时间:2023-11-30 23:51:40 24 4
gpt4 key购买 nike

我有一个用于显示数据的嵌套表格排列。我希望嵌套表位于跨越所有父表列的 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>

最佳答案

完全摆脱你的未隐藏类 - 它完全是多余的。相反,只需从元素中删除隐藏类以使其返回到其自然状态,在本例中:

item.className = '';

但通常我会建议更换:

item.className = item.className.replace(/\bhidden\b/gi,'');

(而且,我个人认为“删除”在语义上比“隐藏”更正确,我会保留“隐藏”来处理可见性属性)

关于javascript - 在 HR 上设置类别会破坏 TD colspan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1363301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com