jQuery DataTable多行标头

时间:2019-04-19 15:05:34

标签: javascript jquery css datatable

我使用jQuery DataTable来显示一些数据。

这是我的code

我尝试使用自举折叠功能添加折叠/展开。

所以我做了两行。

但是,如果您看到控制台,它将引发一个JavaScript错误,因此其下面的代码将无法运行。

我该如何解决?

以下是html代码:

<table id="taskTable">
  <thead class="bg-light text-capitalize">
    <tr>
      <th>Subject</th>
      <th>Name</th>
      <th>Duration</th>
      <th>User</th>
    </tr>
    <tr style="display:none;">
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr data-toggle="collapse" data-target="#demo1">
      <td>Subject1</td>
      <td>Name1</td>
      <td>Duration1</td>
      <td>User1</td>
    </tr>
    <tr id="demo1">
      <td>aaa</td>
    </tr>
    <tr data-toggle="collapse" data-target="#demo2">
      <td>Subject2</td>
      <td>Name2</td>
      <td>Duration2</td>
      <td>User2</td>
    </tr>
    <tr id="demo2">
      <td>aaa</td>
    </tr>
  </tbody>
</table>

1 个答案:

答案 0 :(得分:1)

使用这种方法感觉不好: 由于进行搜索,排序等将破坏<tr>作为标题的概念,而下一个<tr>作为内容。

也许您可以使用不同的方法来实现相同的目的,例如可以拥有子行like here。但您也可以按以下方式解决上述问题:

JS Fiddle

HTML

<table id="taskTable">
  <thead class="bg-light text-capitalize">
    <tr>
      <th>Subject</th>
      <th>Name</th>
      <th>Duration</th>
      <th>User</th>
    </tr>
    <tr style="display:none;">
      <th colspan="4"></th>
    </tr>
  </thead>
  <tbody>
    <tr data-toggle="collapse" data-target="#demo1">
      <td>Subject1</td>
      <td>Name1</td>
      <td>Duration1</td>
      <td>User1</td>
    </tr>
    <tr id="demo1">
      <td colspan="4">aaa</td>
      <td style="display: none;"></td>
      <td style="display: none;"></td>
      <td style="display: none;"></td>
    </tr>
    <tr data-toggle="collapse" data-target="#demo2">
      <td>Subject2</td>
      <td>Name2</td>
      <td>Duration2</td>
      <td>User2</td>
    </tr>
    <tr id="demo2">
      <td colspan="4">aa2</td>
      <td style="display: none;"></td>
      <td style="display: none;"></td>
      <td style="display: none;"></td>
    </tr>
  </tbody>
</table>

JS

$("#taskTable").dataTable({
  "ordering": false
});