例如,如果我有一个带有内部表的表:
<table id="table_1">
<tr>
<td><table id="table_2">
<tr>
<td></td>
</tr>
</table></td>
</tr>
</table>
我已经应用了这个jquery代码:
$.get("../php/new_row.php", {id: id}).done(function(data) {
$('#table_1 tr:last').after(data);
});
它将新行应用于table_2而不是table_1 ...请帮助我,我不明白为什么会发生这种情况如果我指定table_1 ...谢谢!!
答案 0 :(得分:0)
如果您控制台记录$('#table_1 tr:last')
的返回值,您会看到它与两个<tr>
元素匹配,因为它们都匹配选择器。
我认为您想要将>
选择器添加到您的链中,例如
$.get("../php/new_row.php", {id: id}).done(function(data) {
$('#table_1 > tr:last').after(data);
});
仅获取#table_1
您可以阅读该选择器here
修改
另一种解决方案可能只是
$('#table_1').append(data)
这将添加data
(希望是HTML)作为所选表格中的最后一个元素(所以在最后一个<tr>
之后)。如果这不起作用,我们需要更多信息来帮助您。
答案 1 :(得分:0)
使用直接后代选择器:
$('#table_1 > tr:last').after(data);