2015-03-22 35 views
17

używam jQuery datatable.I zrobić to za pomocą http://www.datatables.net/examples/api/select_row.html Teraz chcę dostać wybrany wiersz wartości identyfikatorówjQuery DataTables Getting wybrany wiersz wartości

Scenariusz:

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

i HTML kod:

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

Teraz jestem w stanie uzyskać wybrane nr.op.Teraz chcę uzyskać wybrane numery wierszy. Czy ktoś może mnie poprowadzić, aby to osiągnąć.

Odpowiedz

28

Można iteracyjne nad dane wierszy

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

dziękuję Arun jego pracy zgodnie z oczekiwaniami –

+0

Hi Czy istnieje sposób, aby niektóre wiersze zostały wybrane domyślnie? –

+0

Ta metoda pobiera dane, nawet jeśli kolumna jest ukryta. Jak uzyskać dane wiersza dla widocznych kolumn? –

4

Więcej komentarz niż odpowiedzi - ale nie mogę dodawać komentarzy jeszcze: Dzięki za pomoc, liczba była łatwa część . Tylko dla innych, którzy mogą tu przyjść. Mam nadzieję, że zaoszczędzi ci to trochę czasu.

Zajęło mi trochę czasu, aby uzyskać atrybuty z wierszy i zrozumieć, w jaki sposób uzyskać do nich dostęp z danymi () Object (to dane() jest tablicą i atrybuty mogą być odczytywane przez dodanie im z kropką, a nie ze wspornikami:

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

. (przy okazji: ja uzyskać dane dla mojego tabeli za pomocą AJAX i JSON)

+0

Mam podobny wymóg, ale w moim przypadku mój identyfikator jest ukryty "bVisible": false? więc jak mogę uzyskać wartość ukrytej kolumny wybranego wiersza? –

+0

Hmm, kolumna powinna nadal znajdować się w obiekcie data(), ponieważ jest po prostu ukryta. Nie możesz powtórzyć danych? Szukałem ukrytego objectId w moim zbiorze danych i wygląda to tak: 'var oSelectRows = oMyTable.rows (". Selected "). Data(); dla (var inttt = 0; inttt leole

+1

' var oSelectRows = oMyTable.rows (". Selected"). Data(); '' dla (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]); 
Powiązane problemy