2009-10-15 12 views
7

Sto cercando di recuperare tutte le righe da una sezione <tbody> di una tabella, ma non sono sicuro della sintassi per farlo. Ho incluso un estratto di tabella fittizio qui sotto e il mio ultimo tentativo di raggiungere l'obiettivo con jQuery!Identificazione di tutte le righe all'interno di una tabella <tbody> elemento utilizzando jQuery

Tabella estratto: codice

<tbody> 
<tr> 
    <th id="emergency" colspan="2">Emergency</th> 
</tr> 
    <tr> 
     <td>Emergency data</td> 
     <td>Emergency data</td> 
    </tr> 
    <tr> 
     <td>Emergency data</td> 
     <td>Emergency data</td> 
    </tr> 
</tbody> 
<tbody> 
<tr> 
    <th id="urgent" colspan="2">Urgent</th> 
</tr> 
    <tr> 
     <td>Urgent Data</td> 
     <td>Urgent Data</td> 
    </tr> 
    <tr> 
     <td>Urgent Data</td> 
     <td>Urgent Data</td> 
    </tr> 
</tbody> 

jQuery:

var emergencyRows = $table.find('#emergency').children().get(); 

risposta

8

I miei suggerimenti è di posizionare gli attributi ID sul tbody piuttosto che sulla prima riga di ciascuno.

HTML

<table> 
    <tbody id="emergency"> 
     <tr> 
      <th colspan="2">Emergency</th> 
     </tr> 
     <tr> 
      <td>Emergency data</td> 
      <td>Emergency data</td> 
     </tr> 
     <tr> 
      <td>Emergency data</td> 
      <td>Emergency data</td> 
     </tr> 
    </tbody> 
    <tbody id="urgent"> 
     <tr> 
      <th colspan="2">Urgent</th> 
     </tr> 
     <tr> 
      <td>Urgent Data</td> 
      <td>Urgent Data</td> 
     </tr> 
     <tr> 
      <td>Urgent Data</td> 
      <td>Urgent Data</td> 
     </tr> 
    </tbody> 
</table> 

jQuery

var emergencyRows = $("tbody#emergency").find("tr:gt(0)"); 
var urgentRows = $("tbody#urgent").find("tr:gt(0)"); 

Il frammento jQuery ottenere tutte le rispettive file ad eccezione delle prime righe.

2

Prova:

var emergencyRows = $("th#emergency").parent().parent().find("tr:gt(0)"); 

che dovrebbe ottenere tutte le righe che non sono la riga di intestazione .

4

Questo è probabilmente il più pulito

$('#emergency').closest('tbody').children(); //only returns first child element, so the <tr>'s 
3

Dal tuo esempio, sembra che si potrebbe desiderare "tutte le righe ad eccezione di quello contenente #emergency". Se questo è il caso, è possibile utilizzare il seguente:

$('#emergency').closest('tr').siblings();

Nota che #emergency Non occorre essere <tr /> o <th /> o qualcosa in particolare. Potrebbe essere qualsiasi elemento all'interno di una cella di tabella.

10

È possibile utilizzare il sotto se si conosce l'id della tabella.

var trs = $("#tableid").find("tbody>tr"); 
+0

Se abbiamo applicato l'impaginazione, allora come faccio ad avere altri dati della pagina oltre il pagina corrente. –

+0

Sono stato in grado di trovare una soluzione per ottenere tutti i record in pagine impaginate. –

1

Sono stato in grado di trovare una soluzione per ottenere tutti i record in pagine impaginate. Puoi anche provare questo.

var userList = $("#user-grid").dataTable().fnGetNodes();

Problemi correlati