隐藏扩展/折叠表jQuery上第一列以外的列

时间:2019-02-05 15:56:04

标签: javascript jquery html-table

我有一个带有一个标题和列的表,并且我根据以下代码单击标题来展开/折叠:

$(this).toggleClass('expand').nextUntil('tr.header').slideToggle(100);

我的桌子在下面:

Table

我需要的是。当我第一次单击时,它应该折叠并仅显示第一列,这意味着其他包含data1的列应隐藏如下:

After collapse

它应该显示 + 按钮,当我再次单击它时,它应该回到以前的状态。

请注意小提琴:Fiddle

1 个答案:

答案 0 :(得分:1)

使用:

$(this).toggleClass('expand').next('tr').find('td').not('td:first')

排除第一个td


如果您有多于一行,请使用此选项:

$(this).toggleClass('expand').nextAll('tr').find('td').not('td:first-child').slideToggle(100);

演示

$('.header').click(function() {
  $(this).toggleClass('expand').nextAll('tr').find('td').not('td:first-child').slideToggle(100);
});
table,
tr,
td,
th {
  border: 1px solid black;
  border-collapse: collapse;
}

tr.header {
  cursor: pointer;
}

.header .sign:after {
  content: "+";
  display: inline-block;
}

.header.expand .sign:after {
  content: "-";
}
<table border="0">
  <tr class="header expand">
    <th colspan="4">Header <span class="sign"></span></th>
  </tr>
  <tr>
    <td>data1</td>
    <td>data2</td>
    <td>data3</td>
    <td>data4</td>
  </tr>
  
  <tr>
    <td>data1</td>
    <td>data2</td>
    <td>data3</td>
    <td>data4</td>
  </tr>


</table>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>