web-dev-qa-db-fra.com

jQuery DataTables Obtention des valeurs de ligne sélectionnées

J'utilise jQuery datatable.Je l'ai fait en utilisant http://www.datatables.net/examples/api/select_row.html Maintenant, je veux obtenir valeurs de ligne sélectionnées

Scénario:

 $(document).ready(function() {
 var table = $('#example').DataTable();
 $('#example tbody').on( 'click', 'tr', function () {
    $(this).toggleClass('selected');
} );

$('#button').click( function () {
    alert( table.rows('.selected').data().length +' row(s) selected' );
} );
} );

Et code HTML:

 <table id="example" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th>Id</th>
            <th>Position</th>
            <th>Office</th>
            <th>Age</th>
            <th>Start date</th>
            <th>Salary</th>
        </tr>
    </thead>

    <tfoot>
        <tr>
            <th>Id</th>
            <th>Position</th>
            <th>Office</th>
            <th>Age</th>
            <th>Start date</th>
            <th>Salary</th>
        </tr>
    </tfoot>

    <tbody>
        <tr>
            <td>1</td>
            <td>System Architect</td>
            <td>Edinburgh</td>
            <td>61</td>
            <td>2011/04/25</td>
            <td>$320,800</td>
        </tr>
        <tr>
            <td>2</td>
            <td>Accountant</td>
            <td>Tokyo</td>
            <td>63</td>
            <td>2011/07/25</td>
            <td>$170,750</td>
        </tr>
         </table>

Maintenant, je peux obtenir la sélection no.of.rows.Now. Je souhaite obtenir la liste des ID de ligne sélectionnés. Est-ce que tout le monde peut me guider pour y parvenir?.

20
Aravinth Kumar

Vous pouvez parcourir les données de la ligne

$('#button').click(function () {
    var ids = $.map(table.rows('.selected').data(), function (item) {
        return item[0]
    });
    console.log(ids)
    alert(table.rows('.selected').data().length + ' row(s) selected');
});

Démo: Violon

37
Arun P Johny

Plus un commentaire qu'une réponse - mais je ne peux pas encore ajouter de commentaire: merci de votre aide, le décompte a été la partie la plus facile. Juste pour les autres qui pourraient venir ici. J'espère que cela vous fera gagner du temps.

Il m'a fallu un certain temps pour obtenir le attributs à partir des lignes et comprendre comment y accéder depuis le data () Object (que le data () est un tableau et le Les attributs peuvent être lus en les ajoutant avec un point et non entre crochets:

$('#button').click( function () {
    for (var i = 0; i < table.rows('.selected').data().length; i++) { 
       console.log( table.rows('.selected').data()[i].attributeNameFromYourself);
    }
} );

(au fait: je récupère les données de ma table avec AJAX et JSON)

6
leole
var table = $('#myTableId').DataTable();
var a= [];
$.each(table.rows('.myClassName').data(), function() {
a.Push(this["productId"]);
});

console.log(a[0]);