2015-03-22 4 views
17

Sto usando jQuery datatable.I fatto utilizzando http://www.datatables.net/examples/api/select_row.html Ora voglio ottenere riga selezionata Valori idsjQuery DataTable Come riga selezionata valori

Script:

$(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'); 
}); 
}); 

e codice 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> 

Ora sono in grado di ottenere selezionato no.of.rows.Ora voglio ottenere ID riga selezionato. Qualcuno mi può guidare per raggiungerlo.

risposta

28

È possibile scorrere i dati delle righe

$('#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'); 
}); 

Demo: Fiddle

+0

Grazie Arun il suo funzionamento come previsto –

+0

Ciao C'è un modo per rendere alcune file selezionate di default? –

+0

Questo metodo otterrà i dati anche se la colonna è nascosta. Come puoi ottenere i dati delle righe per le colonne visibili? –

4

Più un commento di una risposta - ma non posso aggiungere commenti ancora: Grazie per il vostro aiuto, il conte era la parte facile . Solo per gli altri che potrebbero venire qui. Spero che ti salverà un po 'di tempo.

Mi c'è voluto un po 'per ottenere il attributi dai filari e per capire come accedervi dai dati () Object (che i dati() è un array e gli attributi possono essere letti con l'aggiunta di loro con un punto e non con le parentesi:

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

. (a proposito: ottengo i dati per la mia tabella utilizzando AJAX e JSON)

+0

Ho un requisito simile ma nel mio caso il mio ID è nascosto "bVisible": falso? quindi, come posso ottenere il valore della colonna nascosta della riga selezionata? –

+0

Hmm, la colonna dovrebbe essere ancora nell'oggetto data() poichè è appena nascosta. Non riesci a scorrere i dati? Stavo cercando l'oggetto hiddenId nel mio set di dati ed è simile a questo: 'var oSelectRows = oMyTable.rows (". Selected "). Data(); for (var inttt = 0; inttt leole

+1

' var oSelectRows = oMyTable.rows (". Selected"). Data(); '' for (var inttt = 0; inttt leole

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

console.log(a[0]);