0

我正在尝试隐藏所属行。例如,如果您单击“Sub Title 1”,它将仅隐藏 Item 1、Item 2 和 Item 3 行。

例子:

<table border="1">
 <tbody>
  <tr class="head">
   <td> title </td>
  </tr>
  <tr class="sub-title">
     <td>Sub Title 1</td>
  </tr>
   <tr> <td>Item 1</td> </tr>
   <tr> <td>Item 2</td> </tr>
   <tr> <td>Item 3</td> </tr>
   <tr class="sub-title">
     <td>Sub Title 2</td>
   </tr>
   <tr> <td>Item 4</td> </tr>
   <tr> <td>Item 5</td> </tr>
   <tr> <td>Item 6</td> </tr>
  </tbody>
</table>

-

$('.sub-title').click( function() {
    $(this).parent().nextUntil('.sub-title').toggle();
})

它似乎不起作用...

4

2 回答 2

1

您必须手动切换:

$(".sub-title").on("click",function() {
    $(this).nextUntil(".sub-title").each(function() {
        this.style.display = this.style.display == "none" ? "" : "none";
    });
});
于 2012-08-08T01:13:41.903 回答
1

nextUntil 选择兄弟姐妹,而不是孩子。从您的通话中删除“父母”。

编辑以回答有关基于类排除某些行的进一步问题。显然,您还可以适应 Kolink 关于防止切换的“显示:块”覆盖默认的“显示:表行”的响应,但只要您在所有支持的浏览器中进行测试,我认为使用切换没有任何问题。

$('.sub-title').click( function() {
   $(this).nextUntil('.sub-title').each(function() {
        if (!$(this).hasClass('order')) 
            $(this).toggle();
    });
});
于 2012-08-08T01:15:32.730 回答