2009-10-15 8 views
7

J'essaie de récupérer toutes les lignes d'une section <tbody> d'une table, mais je ne suis pas sûr de la syntaxe pour le faire. J'ai inclus un extrait de tableau fictif ci-dessous et ma dernière tentative pour réaliser la tâche avec jQuery!Identification de toutes les lignes dans une table <tbody> élément utilisant jQuery

Tableau extrait:

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

Code jQuery:

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

Répondre

8

Mes suggestions sont de placer les attributs ID sur le tbody plutôt que sur la première ligne de chacun.

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)"); 

L'extrait jQuery obtiendra toutes les lignes respectives à l'exception des premières lignes.

2

Essayez:

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

qui vous devriez obtenir toutes les lignes qui ne sont pas la ligne d'en-tête .

4

C'est probablement la plus propre

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

votre exemple, il semble que vous voudrez peut-être « toutes les lignes à l'exception de celui contenant #emergency ». Si tel est le cas, vous pouvez utiliser les éléments suivants:

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

Notez que #emergency doit pas être un <tr /> ou <th /> ou quoi que ce soit en particulier. Cela peut être n'importe quel élément dans une cellule de tableau.

10

Vous pouvez utiliser ce qui suit si vous connaissez l'identifiant de la table.

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

Si nous avons appliqué la pagination, alors comment puis-je obtenir d'autres données de page en plus de la page en cours. –

+0

J'ai été en mesure de trouver une solution pour obtenir tous les enregistrements dans les pages paginées. –

1

J'ai été capable de trouver une solution pour obtenir tous les enregistrements dans les pages paginées. Vous pouvez également essayer ceci.

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

Questions connexes