【发布时间】:2013-09-30 15:36:27
【问题描述】:
我正在尝试创建一个表,其中包含可以使用 jQuery 折叠和展开的标题行。到目前为止,这是我的全部代码:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<link href="styles.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$(document).ready(function() {
$("tr#cat1.header").click(function () {
$("tr#cat1.child").each(function() {
$(this).slideToggle("fast");
});
});
});
</script>
</head>
<body>
<table>
<tr id="cat1" class="header">
<td>Cat1</td>
<td>Row</td>
</tr>
<tr id="cat1" class="child">
<td>data1</td>
<td>data2</td>
</tr>
<tr id="cat1" class="child">
<td>data3</td>
<td>data4</td>
</tr>
<tr id="cat2" class="header">
<td>Cat1</td>
<td>Row</td>
</tr>
<tr id="cat2" class="child">
<td>data1</td>
<td>data2</td>
</tr>
</table>
</body>
</html>
如果我是正确的,英文的 jQuery 部分如下所示:“当单击 ID 为 'cat1' 且类为 'header' 的行时,查找 ID 为 'cat1' 的所有行并且一个 'child' 的类,对于每一个,slideToggle。"
然而,当我运行它并单击标题行时,什么也没有发生。有什么见解吗?
编辑:向 HTML 表添加了第二个类别。对不起,我应该更具体。我希望能够单击特定类别的标题行,并且只有那些子行折叠,而不是页面上的所有子行。以这种方式,表格就像“手风琴”一样,行按类别分组在一起。
【问题讨论】:
-
您需要更改分配给
<tr>元素的 ID,因为 ID 必须是唯一的才能符合 HTML 规范 -
谢谢拉斯,我没有意识到。我正在尝试按类别将行分组。除了为每个类别创建两个 CSS 类(一个用于标题行,一个用于子行)之外,还有什么方法可以做到这一点?
-
每个类别不一定需要 2 个 CSS 类 - 对于标题行和子行仅使用一个 CSS 类就可以正常工作。