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?.
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
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)
var table = $('#myTableId').DataTable();
var a= [];
$.each(table.rows('.myClassName').data(), function() {
a.Push(this["productId"]);
});
console.log(a[0]);