2009-10-15 12 views
7

Próbuję pobrać wszystkie wiersze z sekcji <tbody> tabeli, ale nie mam pewności co do tej składni. Poniżej zamieściłem ekstrakt z tabeli próbnej i moją ostatnią próbę osiągnięcia tego zadania za pomocą jQuery!Identyfikowanie wszystkich wierszy w ramach elementu tabeli <tbody> przy użyciu jQuery

ekstrakt Tabela: Kod

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

Odpowiedz

8

Moje sugestie to umieszczenie atrybutów ID na tbody, a nie na pierwszym rzędzie każdego z nich.

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

JQuery fragment otrzyma wszystkie odpowiednie wiersze z wyjątkiem pierwszych rzędach.

2

Spróbuj:

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

który powinien uzyskać wszystkie wiersze, które nie są wiersz nagłówka .

4

Jest to prawdopodobnie najczystszym

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

Z Twojego przykład, wydaje się, że warto „wszystkie wiersze z wyjątkiem jednego zawierającego #emergency”. Jeśli to przypadek, można użyć następujących:

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

Zauważ, że #emergency nie musi być <tr /> lub <th /> lub coś w szczególności. Może to być dowolny element w komórce tabeli.

10

Możesz użyć poniższego, jeśli znasz identyfikator tabeli.

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

Gdybyśmy zastosowali podział na strony, to w jaki sposób mogę uzyskać inne dane strony oprócz bieżącej strony. –

+0

Udało mi się znaleźć rozwiązanie, aby uzyskać wszystkie rekordy w stronicowanych stronach. –

1

Udało mi się znaleźć rozwiązanie, aby uzyskać wszystkie rekordy w stronicowanych stronach. Możesz również wypróbować to.

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

Powiązane problemy