[英]Extending collapsible divs to rows of a table
我能夠折疊/展開div。 的jsfiddle
jQuery的:
$(document).ready(function () {
$(".data").hide();
$(".header").click(function () {
$(this).next(".data").slideToggle(200);
});
});
范例html:
<div class="outermost">
<p class="header">Category - 1</p>
<div class="data">
Sub Cateogry 1.1<br/>
Sub Cateogry 1.2
</div>
<p class="header">Category - 2</p>
<div class="data">
Sub Cateogry 2.1<br/>
Sub Cateogry 2.2
我想修改此示例,以便它可以折疊/擴展給定表的行。 (描述-我有很多類別和子類別。我正在計划一個表格,該表格將所有類別顯示為單獨的行。單擊類別時,它應該顯示子類別)。
div不能放在表中。因此,此方法不起作用。
請提出一些替代方案或任何建議,以便在其中獲取一些文檔。
表格(一種反饋形式):
<table><tbody>
<tr><th>Item</th><th>Feedback</th></tr>
<tr><td colspan=2>Category1</td></tr>
<tr><td>Sub Category 1.1</td><td><input type="text" ></td></tr>
<tr><td>Sub Category 1.2</td><td><input type="text" ></td></tr>
<tr><td colspan=2>Category2</td></tr>
<tr><td>Sub Category 2.1</td><td><input type="text" ></td></tr>
</tbody></table>
正如前面所建議的那樣,這種結構的最佳標記是嵌套ul/ol
但如果必須使用table,則可以使用<tbody>
元素。 看到這個jsfiddle
.outermost td{padding: 10px;}
.outermost .header{background:#eee}
.data{display: none;}
.data td{padding-left :20px;}
<div class="outermost">
<table>
<tbody class="header">
<tr>
<td>Category - 1</td>
</tr>
</tbody>
<tbody class="data">
<tr>
<td>Sub Cateogry 1.1</td>
</tr>
<tr>
<td>Sub Cateogry 1.2</td>
</tr>
</tbody>
<tbody class="header">
<tr>
<td>Category - 2</td>
</tr>
</tbody>
<tbody class="data">
<tr>
<td>Sub Cateogry 2.1</td>
</tr>
<tr>
<td>Sub Cateogry 2.2</td>
</tr>
</tbody>
</table>
</div>
$(document).ready(function () {
$(".header").click(function () {
$(this).next("tbody.data").slideToggle(200);
});
});
通過使用這種技術,您將能夠對多個表行進行group
,並將它們show/hide
為一個單元。
我建議在這種情況下使用ul,因為它適合於樹形結構,例如:
<ul class="outermost">
<li>Category - 1</li>
<li>
<ul>
<li>Sub Cateogry 1.1</li>
<li>Sub Cateogry 1.2</li>
</ul>
</li>
</ul>
或者如果要使用表,則必須將子表嵌入單元格中
<table class="outermost">
<tr><td>Category - 1</td></tr>
<tr>
<td>
<table>
<tr><td>Sub Cateogry 1.1</td></tr>
<tr><td>Sub Cateogry 1.2</td></tr>
</table>
</td>
</tr>
</table>
為了一致性,我認為我們應該使用ul,table或block(div)。 不應將它們混合在一起。 如果您需要在table和div之間混合使用,請嘗試以下操作:
<table class="outermost">
<tr><td>Category - 1</td></tr>
<tr>
<td>
<div>
<div>Sub Cateogry 1.1</div>
<div>Sub Cateogry 1.2</div>
</div>
</td>
</tr>
</table>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.