Многорядный заголовок jQuery с данными

#javascript #jquery #css #datatable

#javascript #jquery #css #с данными

Вопрос:

Я использовал jQuery DataTable для отображения некоторых данных.

Вот мой код.

Я попытался добавить свернуть / развернуть, используя функцию свертывания начальной загрузки.

Итак, я сделал две строки.

Но если вы видите консоль, она выдает ошибку 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:

Не очень хорошо использовать этот подход: из-за поиска, сортировки и т. Д. Нарушится концепция <tr> заголовка as, и он будет следующим <tr> в качестве содержимого.

Возможно, вы можете добиться того же, используя другой подход, например, у вас могут быть дочерние строки, как здесь. Но вы также можете исправить вышеуказанную проблему, как показано ниже:

Скрипка JS

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
});
 

Комментарии:

1. это работает, но если это неправильный подход, что бы вы порекомендовали?

2. @Guru Если вы выполняете сортировку или поиск, то, возможно, вы не получите заголовок первым, а его дочерний элемент под ним. Я также обновил ответ.