javascript - 隐藏展开/折叠表 jQuery 上第一列以外的列

标签 javascript jquery html-table

我有一个包含一个标题和列的表格,我通过以下代码根据标题点击展开/折叠:

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

我的表格如下:

Table

我需要的是。当我首先单击时,它应该折叠并仅显示第一列,这意味着带有 data1 的列应该隐藏,如下所示:

After collapse

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

请注意 fiddle :Fiddle

最佳答案

使用:

$(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>

关于javascript - 隐藏展开/折叠表 jQuery 上第一列以外的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54538310/

相关文章:

javascript - 更好的性能、空元素或使用 Javascript 创建和销毁?

jquery - 使用 .html() 会中断 .click() 和 .hover() 事件

javascript - 检查 HTML 表格中的特定复选框

javascript - JS调用自执行匿名父函数

javascript - 奇怪的过度滚动行为

javascript - 使用另一个对象的 init 函数创建新对象

javascript - 无法使用 Jquery 将 HTML 附加到列表

html - 如果 tr 有类,则悬停整个 TR

jquery - 获取表格单元格内的文本高度

javascript - Dojo 对话框未加载样式