我正在寻找一种使用jQuery展开/折叠分层表格行的高效方法。问题在于,展开和折叠功能是不同的。
我的无效解决方案:
问题是,它只会折叠下一级行。被点击行下面可见的更深层次的行仍然显示。
有人可以给我一些提示吗?我应该如何以高效的方式做到这一点?如果需要,可以调整HTML代码。
感谢任何提示。
- 最初,只有带有类
level_0
的行会显示,所有其他行都被隐藏。 - 展开应该只显示下一个级别,因此单击行
id = 10
应仅使具有id = 11
和id = 14
的行可见。 - 另一方面,折叠应该折叠比当前级别更深的所有连续行。例如,单击行
id = 10
上的折叠应隐藏具有id = 11,12,13,14
的行(如果它们可见)。
表格数据如下:
<table id="mytable">
<tr class="level_0" id="10">...</td>
<tr class="level_1 parent_10" id="11">...</td>
<tr class="level_2 parent_11" id="12">...</td>
<tr class="level_2 parent_11" id="13">...</td>
<tr class="level_1 parent_10" id="14">...</td>
<tr class="level_0" id="15">...</td>
</table>
我的无效解决方案:
$('#mytable tr').live('click', function() {
var toggleClass = 'parent_' + $(this).attr('id');
$(this).nextAll('tr').each(function() {
if ($(this).is('.'+toggleClass)) {
$(this).toggleClass("showme");
}
});
});
问题是,它只会折叠下一级行。被点击行下面可见的更深层次的行仍然显示。
有人可以给我一些提示吗?我应该如何以高效的方式做到这一点?如果需要,可以调整HTML代码。
感谢任何提示。