0

以下のような展開/折りたたみのネストされたテーブル構造があります。ここで親をクリックすると、そのレベルで以前に展開された他のすべての親とその子が折りたたまれる必要があります。

ここに画像の説明を入力

最初に Application(1) が展開され、2 つの子 (画像 1) があります。Application(2) をクリックすると、Application(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'); 
4

2 に答える 2

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');

デモ:フィドル

于 2013-10-07T16:48:33.923 に答える