row (). every () выбирает все строки (ошибка), плагин dataTables jquery - PullRequest
0 голосов
/ 29 ноября 2018

Я просто хочу, чтобы numberOfSelectedRows отображало только те строки, которые я выбрал.Например, если я выбрал 2 строки, я просто хочу, чтобы эта переменная была 2. Но для меня она выходит во все строки.То же самое, когда я использую функцию api.rows (). Every ().В документах для row (). Every () говорится, что только выбранные строки зациклены, но для меня это циклически перебирает все строки в таблице.Что я делаю не так?

index.js

$(document).ready(function () {
    $('#example').DataTable({
        dom: 'Bfrtip',
        select: true,
        buttons: [{
          extend: 'copyHtml5',
          text: 'Copy Selected Rows',
          header: false,
          customize: function(data, config, api){

            var numberOfSelectedRows = api.rows().data().length;
            console.log(numberOfSelectedRows);
          }
      }]
    });
});

index.html

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
  <link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.5.2/css/buttons.dataTables.min.css">
  <script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.js"></script>
  <script type="text/javascript" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
  <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.2/js/dataTables.buttons.min.js"></script>
  <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.flash.min.js"></script>
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.min.js"></script>
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"></script>
  <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.html5.min.js"></script>
  <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.print.min.js"></script>
  <script type="text/javascript" src="https://cdn.datatables.net/select/1.2.7/js/dataTables.select.min.js"></script>
  <script type="text/javascript" src="index.js"></script>
  <body>

    <table id="example" class="display" style="width:100%">
       <thead>
          <tr>
             <th>Name</th>
             <th>Position</th>
             <th>Office</th>
             <th>Age</th>
             <th>Start date</th>
             <th>Salary</th>
          </tr>
       </thead>
       <tbody>
          <tr>
             <td>Tiger Nixon</td>
             <td>System Architect</td>
             <td>Edinburgh</td>
             <td>61</td>
             <td>2011/04/25</td>
             <td>$320,800</td>
          </tr>
          <tr>
             <td>Garrett Winters</td>
             <td>Accountant</td>
             <td>Tokyo</td>
             <td>63</td>
             <td>2011/07/25</td>
             <td>$170,750</td>
          </tr>
          <tr>
             <td>Ashton Cox</td>
             <td>Junior Technical Author</td>
             <td>San Francisco</td>
             <td>66</td>
             <td>2009/01/12</td>
             <td>$86,000</td>
          </tr>
        </tbody>
      </table>
  </body>
</html>

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Вы можете использовать функцию count для получения выбранного количества строк.

Подсчитать, сколько строк в выбранном классе:

var table = $('#example').DataTable();
alert( 'Rows '+table.rows( '.selected' ).count()+' are selected' );

Подсчитать количество записей данных (т.е.строк) в таблице:

var table = $('#example').DataTable(); 
if ( ! table.data().count() ) {
    alert( 'Empty table' );
}

Вы можете увидеть документ здесь

0 голосов
/ 29 ноября 2018

Это должно быть изменено с:

var numberOfSelectedRows = api.rows().data().length

на это:

var numberOfSelectedRows = api.rows('.selected').data().length
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...