2010-05-31 15 views
8

Mam tabeli zdefiniowane następująco:JQuery - Ustaw 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> 

Próbuję dynamicznie zapełnić „myTable” w czasie wykonywania przez JavaScript. Aby się do tego dostosować, używam JQuery. Chcę napisać kod HTML do elementu tbody w ramach "myTable". Mam jednak problemy ze zrozumieniem, jak to zrobić z selektorami. Wiem, że mogę dostać „myTable” za pomocą:

$("#myTable") 

wiem, że mogę ustawić kod HTML myTable za pomocą następujących czynności:

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

jednak, że ustawia HTML całej tabeli . W rzeczywistości chcę ustawić kod HTML w jednostce TBODY z "myTable". Jak to zrobić z JQuery?

Dziękujemy!

+2

Czy ten problem został rozwiązany? – user113716

Odpowiedz

0

Spróbuj:

$("#myTable tbody") 
3

znaleźć element tbody i użyć append, jeśli chcesz dodać wiersze, lub HTML, jeśli chcesz zastąpić wszystkie wiersze.

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

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

Pamiętaj, że jeśli masz więcej niż jeden element TBODY musisz również użyć selektora :first (lub nth-child - nie zapominać, że mimo, że to od zera, masz element THEAD), aby uzyskać poprawny.

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

Nie trzeba używać funkcji, aby znaleźć tbody. –

+0

@ Gert G - Zrozumiałem to zaraz po napisaniu. Gdybyś jednak miał już odniesienie do stołu, byłby to właściwy sposób. – tvanfosson

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

użyłbyś:

$("#myTable > tbody"); 

który wybiera tbody elementy, które są bezpośrednim potomkiem #myTable.

Alternatywnie, można użyć:

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

który wyszukuje wszystkie tbody elementów w kontekście #myTable.

W jQuery często istnieje kilka sposobów osiągnięcia tego, czego potrzebujesz.

Innym sposobem byłoby zrobić:

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

który jest skutecznie takie same jak moje pierwsze rozwiązanie powyżej.

jQuery ma świetne dokumenty:

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

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

0

dać swoją tbody identyfikator, a następnie zrób to samo z tym, jak zostały zrobione z tabeli

< tbody id = 'myTbody' >

1

Spróbuj użyć $("#myTable > tbody").html("");

0

Można zrobić tak:

$("#myTable tbody").html(html_here); 
0
$('#myTable tbody').append('<tr><td>foo</td><td>bar</td></tr>'); 
Powiązane problemy