2009-10-15 31 views
7

Tôi đang cố gắng truy xuất tất cả các hàng từ bên trong một phần <tbody> của bảng, nhưng không chắc chắn về cú pháp để làm như vậy. Tôi đã bao gồm một trích xuất bảng giả dưới đây và nỗ lực mới nhất của tôi để đạt được nhiệm vụ với jQuery!Xác định tất cả các hàng trong một bảng <tbody> phần tử bằng cách sử dụng jQuery

Bảng chiết xuất: đang

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

Trả lời

8

Đề xuất của tôi là đặt các thuộc tính ID trên tbody thay vì hàng đầu tiên của mỗi một.

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

Đoạn jQuery sẽ nhận được tất cả các hàng tương ứng với ngoại lệ của các hàng đầu tiên.

2

Hãy thử:

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

mà nên giúp bạn có được tất cả các hàng mà không phải là dòng tiêu đề .

4

Đây có lẽ là sạch nhất

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

Từ ví dụ của bạn, nó có vẻ như bạn có thể muốn "tất cả các hàng ngoại trừ một chứa #emergency". Nếu đó là trường hợp, bạn có thể sử dụng như sau:

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

Lưu ý rằng #emergency không cần phải là một điều gì <tr /> hoặc <th /> hoặc nói riêng. Nó có thể là bất kỳ phần tử nào trong một ô bảng.

10

Bạn có thể sử dụng bên dưới nếu bạn biết id bảng.

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

Nếu chúng tôi đã áp dụng phân trang, thì làm cách nào để nhận dữ liệu trang khác ngoài trang hiện tại. –

+0

Tôi đã có thể tìm thấy giải pháp để lấy tất cả các bản ghi trong các trang được phân trang. –

1

Tôi đã tìm được giải pháp để có được tất cả các bản ghi trong các trang được phân trang. Bạn cũng có thể thử cách này.

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

Các vấn đề liên quan