使用jQuery将内容添加到表中的特定列
问题描述:
我有一个表结构看起来像这样。一张外面的桌子,几乎每一张桌子上都有一张内表。使用jQuery将内容添加到表中的特定列
<table class="outertable">
<tr>
<td>
<table class="innertable">
<tr><td></td></tr>
<tr><td></td></tr>
</table>
</td>
<td>
<table class="innertable">
<tr><td></td></tr>
<tr><td></td></tr>
</table>
</td>
</tr>
.....
</table>
使用jQuery我需要遍历在外部表中的每个TD在某些特定的TDS添加一些独特的内容。我一直在尝试使用下面的代码。如果外部表没有任何子表,但正如你可以理解它不适用于子表一样,它可以正常工作。那么如何循环表格中的每个td来添加内容?
var row = 0;
car column = 0;
for (var i = 0; i < list.length; i++) {
$(".outertable tr:eq(" + row + ") td:eq(" + column + ")").append(list[i].content);
if (column == 1) {
column = 0;
row++;
} else {
column++;
}
}
答
我相信你的问题是,你的CSS选择器是贪婪的。 “.outertable tr”将在'.outert'之下获得所有儿童'tr'元素。相反,将选择器调整为仅获得直接的孩子“.outertable> tr”。选择器的'td'部分也一样。所以......
$(".outertable > tr:eq(" + row + ") > td:eq(" + column + ")").append(list[i].content);
答
$(".outertable tr td").each(function() {
$(this).append(NEWCONTENT);
});
谢谢,但我测试警报($( “outertable> TR:EQ(0)> TD:EQ(0)”。)HTML());这会给我第一个tr中第一个td的内容,但它只是给出了null。我究竟做错了什么? – mrrmatinsi 2010-09-15 21:32:04
使用Firebug并在$(“。outertable> tr:eq(0)> td:eq(0)”)上执行console.log()。确认它正在拉动表格单元格。除非你的HTML被破坏,否则它应该工作正常。 – BBonifield 2010-09-15 21:55:35