有没有更好的方法在jQuery中编写它?

时间:2010-03-26 19:31:00

标签: jquery-ui jquery jquery-selectors

$(".sectionHeader").click(function() {
    var row = $(this).parent();
    while (row.next().length != 0) {
        row = row.next();
        if (row.children().first().is('th')) return;
        row.toggle();
    }
});

2 个答案:

答案 0 :(得分:2)

看起来表中的行是节标题,在这种情况下,您可以折叠到下一个sectionHeader,如下所示:

$(".sectionHeader").click(function() {
    $(this).closest("tr").nextUntil(".sectionHeader").toggle();
});

您可以使用delegate()来提高效率:

$("#sectionTable").delegate(".sectionHeader", "click", function() {
    $(this).closest("tr").nextUntil(".sectionHeader").toggle();
});

这会为整个表附加一个事件处理程序,而不是每.sectionHeader行1个。

答案 1 :(得分:0)

$(".sectionHeader").click(function() {
    $(this).parent().each(function(index, element){
      if($(element).children().first().is('th')) return;
      $(element).toogle();
    });
});