2010-05-31 64 views
8

我有一個表定義如下:JQuery的 - 設置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> 

我試圖通過JavaScript動態填充「myTable的」在運行時。爲了適應這一點,我使用JQuery。我想寫一些HTML到'myTable'中的tbody元素中。但是,我在理解如何使用選擇器執行此操作時遇到問題。我知道,我能得到「mytable的」使用:

$("#myTable") 

我知道我可以通過設定爲myTable的HTML如下:

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

然而,將整個表格的HTML 。實際上,我只是希望在'myTable'的TBODY中設置HTML。我如何用JQuery來做到這一點?

謝謝!

+2

一直這個問題得到了解決? – user113716 2011-01-16 21:42:00

回答

0

嘗試:

$("#myTable tbody") 
3

找到tbody元素和使用追加,如果你想添加行,或HTML,如果要替換所有行。

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

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

注意,如果你有一個以上的tbody元素,你還需要使用:first選擇(或nth-child - 不要忘了,雖然它是零基礎,你有一個THEAD元素)來獲得正確的。

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

沒有必要使用函數來查找tbody。 – 2010-05-31 13:35:26

+0

@Gert G - 我在寫完之後才意識到這一點。如果你確實已經有了對錶格的引用,那麼這將是一條路。 – tvanfosson 2010-05-31 13:37:49

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

你可以使用:

$("#myTable > tbody"); 

它選擇tbody元素是#myTable的嫡系。

或者,你可以使用:

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

其中發現的#myTable範圍內的所有tbody元素。

在jQuery中,通常有幾種方法可以完成你所需要的。

另一種方式,是做:

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

這是有效地同我上面的第一個解決方案。

jQuery有很大的文檔:

選擇器:http://api.jquery.com/category/selectors/

穿越:http://api.jquery.com/category/traversing/

0

給你tbody的一個ID,然後用它做一樣的,你有你的表完成

< tbody id ='myTbody'>

1

嘗試使用$("#myTable > tbody").html("");

0

你可以這樣做:

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