表行展开折叠jquery

时间:2013-10-07 16:37:18

标签: jquery html

我有一个展开/折叠嵌套表结构,如下所示。 在这里,当我点击父级时,该级别的所有其他先前扩展的父级必须折叠其子级。

enter image description here

最初应用程序(1)被扩展,有2个孩子(图1)。 当我单击应用程序(2)时,必须折叠应用程序(1)的子项(图2)。 这应适用于所有级别。像找到兄弟姐妹和隐藏的东西,但被点击的除外。我该怎么做

siblings().find().not(clicked).hide();

这是我的小提琴http://jsfiddle.net/vivekcek/rFKJc/

父行有一个类'parent'和id ='[id]'。子行通过追加父ID class = child- [id]。

来创建一个类
 $('tr.parent')
.css("cursor", "pointer")
.attr("title", "Click to expand/collapse")
.click(function () {
$(this).siblings('.child-' + this.id).toggle();
});
$('tr[class*=child-]').hide().children('td'); 

2 个答案:

答案 0 :(得分:2)

尝试

var $trs = $('tr.parent')
.css("cursor", "pointer")
.attr("title", "Click to expand/collapse")
.click(function () {
    var $sibs = $(this).siblings('.child-' + this.id).toggle();
    $(this).siblings().not($sibs).not('.parent').hide()
});
$('tr[class*=child-]').hide().children('td');

演示:Fiddle

答案 1 :(得分:0)

这解决了所有问题

         var $trs = $('tr.parent')
        .css("cursor", "pointer")
        .attr("title", "Click to expand/collapse")
        .click(function () {
                var $sibs = $(this).siblings('.child-' + this.id).toggle();
                $(this).siblings().not($sibs).not('.parent').hide();
                $($sibs).find('tr[class*=child-]').hide();
        });

    $('tr[class*=child-]').hide().children('td');