我正在寻找一种使用 jQuery 展开/折叠分层表行的有效方法。问题是,展开和折叠功能不同。
- 最初,只
level_0
显示具有类的行,隐藏所有其他行。 - 展开应该只显示下一个级别,因此单击行
id=10
应该只使行可见id=11
并且id=14
可见。 - 另一方面,折叠应该折叠所有连续行,其级别比当前行更深。例如,单击行上的折叠
id=10
应该隐藏具有 ids 的行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 代码。
感谢您的任何提示。