2010-05-31 34 views
8

Tôi có một bảng quy định như sau:JQuery - Đặt tbody

<table id="myTable" cellpadding="0" cellspacing="0"> 
    <thead><tr> 
    <th>Date</th> 
    <th>First Name</th> 
    <th>Last Name</th> 
    </tr></thead> 

    <tbody> 
    <!-- rows will go here --> 
    </tbody> 
</table> 

tôi đang cố gắng để tự động cư 'myTable' khi chạy qua JavaScript. Để phù hợp cho điều này, tôi đang sử dụng JQuery. Tôi muốn viết một số HTML vào phần tử tbody trong 'myTable'. Tuy nhiên, tôi gặp sự cố khi hiểu cách thực hiện điều này với bộ chọn. Tôi biết rằng tôi có thể nhận 'myTable' sử dụng:

$("#myTable") 

tôi biết rằng tôi có thể thiết lập mã HTML của myTable bằng cách sử dụng như sau:

$("#myTable").html(someHtmlString); 

Tuy nhiên, mà bộ mã HTML của toàn bộ bảng . Trong thực tế, tôi chỉ muốn đặt HTML bên trong TBODY của 'myTable'. Làm thế nào để làm điều này với JQuery?

Cảm ơn bạn!

+2

đã quyết vấn đề này được giải quyết? – user113716

Trả lời

0

Hãy thử:

$("#myTable tbody") 
3

Tìm các yếu tố tbody và sử dụng append, nếu bạn muốn thêm hàng, hoặc html, nếu bạn muốn thay thế tất cả các hàng.

$('#myTable tbody').append(someRowHtml); 

$('#myTable tbody').html(someRowHtml); 

Lưu ý rằng nếu bạn có nhiều hơn một yếu tố tbody bạn cũng sẽ cần phải sử dụng bộ chọn :first (hoặc nth-child - đừng quên rằng, mặc dù nó là zero-based, bạn có một yếu tố thead) để có được đúng.

$('#myTable tbody:first').append(...); 
+0

Không cần sử dụng hàm để tìm tbody. –

+0

@Gert G - Tôi nhận ra rằng ngay sau khi tôi viết nó. Nếu bạn đã có một tham chiếu đến bảng, mặc dù, nó sẽ là con đường để đi. – tvanfosson

2
$("#myTable tbody").html(someHtmlString); 
21

Bạn sẽ sử dụng:

$("#myTable > tbody"); 

mà chọn tbody yếu tố đó là hậu duệ trực tiếp của #myTable.

Ngoài ra, bạn có thể sử dụng:

$('tbody', '#myTable'); 

đó tìm tất cả các yếu tố tbody trong bối cảnh của #myTable.

Trong jQuery, thường có một số cách để thực hiện những gì bạn cần.

Một cách khác, sẽ làm:

$('#myTable').children('tbody'); 

đó là một cách hiệu quả tương tự như giải pháp đầu tiên của tôi ở trên.

jQuery có tài liệu lớn:

Selectors:http://api.jquery.com/category/selectors/

Traversing:http://api.jquery.com/category/traversing/

0

cho tbody bạn một id và sau đó làm tương tự với nó như bạn đã làm với bảng của bạn

< tbody id = 'myTbody' >

1

Cố gắng sử dụng $("#myTable > tbody").html("");

0

Bạn có thể làm như sau:

$("#myTable tbody").html(html_here); 
0
$('#myTable tbody').append('<tr><td>foo</td><td>bar</td></tr>'); 
Các vấn đề liên quan