如何在不影响表中的表的情况下使用jquery追加表行?

时间:2014-03-12 17:18:33

标签: jquery

例如,如果我有一个带有内部表的表:

<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 ...谢谢!!

2 个答案:

答案 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

的IMMEDIATE子女

您可以阅读该选择器here

修改

另一种解决方案可能只是

$('#table_1').append(data)

这将添加data(希望是HTML)作为所选表格中的最后一个元素(所以在最后一个<tr>之后)。如果这不起作用,我们需要更多信息来帮助您。

答案 1 :(得分:0)

使用直接后代选择器:

$('#table_1 > tr:last').after(data);