手风琴表显示另一个表
Accordion table showing another table
我正在尝试在多个表中设置手风琴。一旦用户点击一个<tr>
,另一个表将显示在底部。
HTML
<table class="table m-0 stocks" border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
<th> </th>
</tr>
</thead>
<tbody>
<tr class="parent-clickable">
<td>1</td>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
<td>+</td>
</tr>
<tr class="hidden">
<td colspan="5">
<table class="table">
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
<td>+</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
JS
$(document).ready(function() {
$("parent-clickable").click(function() {
var text = $(this).closest("tr").find(".hidden").slideToggle(200, "linear");
});
console.log("Clicked");
});
JSFIDDLE
在你的代码中修复一些小的东西,HTML是好的。
$(document).ready(function() {
$(".parent-clickable").click(function() {
$(this).next(".hidden").slideToggle(200, "linear");
console.log("Clicked");
});
});
你忘记在"parent-clickable"前面添加选择器了,在这个例子中,是一个类,所以用一个点作为前缀。
在这种情况下,使用。close和。find的似乎是多余的,因为一个。next可以帮助实现您想要的。最后,如果您不在其他地方使用它,则不需要将所有这些存储在变量中。
$(".parent-clickable").click(function() {
$(this).closest("tr").next(".hidden").slideToggle(200, "linear");
console.log("Clicked");
});
.hidden {
display: none
}
table {
border: 1px solid red;
}
td,
th {
padding: 5px 10px;
}
.parent-clickable {
background: rgba(0, 0, 0, .3);
cursor: pointer;
z-index: 100000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<table class="table m-0 stocks" border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
<th> </th>
</tr>
</thead>
<tbody>
<tr class="parent-clickable">
<td>1</td>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
<td>+</td>
</tr>
<tr class="hidden">
<td colspan="5">
<table class="table">
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
<td>+</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
$(".parent-clickable").on("click", function() {
$(this).closest("tr").next(".hidden").slideToggle(200, "linear");
console.log("Clicked");
});
这个怎么样?一次失踪。在parent-clickable选择器上使用next而不是find?
相关文章:
- bootstrap消除模态并显示另一个模态
- 如何使用JS/jQuery在另一个网站上显示iframe中的特定内容
- 如何在单击按钮时显示一个分区,同时隐藏另一个分区
- PHP处理来自一个页面的http请求,并将其显示在另一个页面上
- 如果显示另一个折叠的图元,如何隐藏该图元
- Javascript:当这个单词被点击5次时,下面会显示另一个单词
- 使用javascript加载并显示来自另一个域的页面,而不显示原始URL
- 当我将子项从一个父项移动/复制到另一个父级时,如何重新计算显示
- 如何将src的值放在一个输入中,然后在另一个页面上显示它
- 必应地图没有'当我向函数添加另一个参数时,t显示
- notify.js没有'如果另一个窗口被聚焦,则不显示通知
- 是否可以使用不同投影的另一个WMS层显示OSM数据
- 如何在显示多个标记时单击另一个标记时关闭信息窗口
- 下载网站'的内容并在另一个网站中显示(部分)
- 显示/隐藏下拉选项取决于另一个下拉选择
- 检查资源的id是否在ng重复中显示的另一个资源的id列表中
- 在另一个文件夹中显示React组件
- 在重定向到 ASP.NET C# 中的另一个页面之前显示客户端脚本警报
- 当另一个显示时加载HTML而不修改他
- 将imsg src从一个更改为另一个显示'轻弹'