2010-05-31 92 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>');