jquery:在表的倒数第二行中使用appendTo

时间:2009-10-29 17:02:39

标签: javascript jquery

我有一块DOM,我想插入到我的页面中。目前我只是盲目地使用:

$(myblob).appendTo(someotherblob);

我如何做同样的事情,但是将myblob追加到someotherblob中的倒数第二行。在这种情况下someotherblob是一个表,我想在第二个上面注入一行到最后一个。

9 个答案:

答案 0 :(得分:72)

$('#mytable tr:last').before("<tr><td>new row</td></tr>")

答案 1 :(得分:2)

您也可以按索引选择器选择行。

$('#mytable tr').eq(-1).before("<tr><td>new row</td></tr>")

此处eq用于选择最后一行。 eq是零索引,负索引从最后开始。所以我在索引中使用-1

答案 2 :(得分:1)

请注意,使用before()时,必须已将元素插入到文档中(如果元素不在页面中,则无法在另一个元素之前插入元素。)

所以你必须先插入someotherblob:

$('selector to insert someotherblob at')
    .append(someotherblob)
       .find('table tr:last')
          .prev()
          .before(myblob);

答案 3 :(得分:1)

  • 我很感谢orin给出的答案this one

  • 我尝试了一下,发现所需的列字面上移动到了enitre表之上。这是因为我没有为标题列使用 thead 标记。我再一次开始挖掘答案并提出了我自己的解决方案。

  • 所以这就是:在我的场景中,需要显示每个数字类型列中所有条目的总计。除非所有行都是动态填充的,否则我无法进行计算。

<强> HTML:

<tr class="gTotal"> 
      <th colspan="4" class="head">Grand Total</th>
      <th><?php echo $grandTtlResumeSntCnt; ?></th>
      <th><?php echo $grandTtlEvalCnt; ?></th>
      <th><?php echo $grandTtlUniqEvalCnt; ?></th>
      <th><?php echo $grandTtlResCnt; ?></th>
      <th><?php echo $grandTtlUniqResCnt; ?></th>
</tr>
</table>

<强> Jquery的:

$('.gTotal').insertBefore('table>tbody>tr:nth-child(2)');

如果我回答你的问题,请告诉我

答案 4 :(得分:1)

$('#mytable tr:last').prev().after("<tr><td>new row</td></tr>")

答案 5 :(得分:0)

我最近在网上放了一些代码来帮助你处理表修改:

http://notetodogself.blogspot.com/2009/08/javascript-insert-table-rows-table-body.html

另外,你的问题不太清楚,但希望上面的链接涵盖所有基础

答案 6 :(得分:0)

我想你想在de second和last row之间的每一行中添加一行。

在这种情况下尝试:

var rows=someotherblob.find("TR");
var nrows=rows.length;
    rows.slice(1,(nrows-2)).each(function(){
     $(this).append(myblob);
    })

答案 7 :(得分:0)

在黑暗中拍摄一下,但我猜你在桌子的底部有一个页脚,甚至可能是数据输入,并且你想在数据之前添加行,页脚。在这种情况下,您应该将表重组为:

<table id="myTable">
    <thead>
        <tr><!-- header row(s) --></tr>
    </thead>
    <tfoot>
        <tr><!-- footer row(s) --></tr>
    </tfoot>
    <tbody>
        <tr><!-- exciting and possibly dynamically inserted data goes here --></tr>
    </tbody>
</table>

是的,tbody确实在tfoot之后。 Wierd,是吗?

然后你可以简单地使用它:

$("#myTable tbody").append(newrow);

答案 8 :(得分:0)

这很简单:

$("#TableName tr:last").prev().before("<tr><td>Hello World</td></tr>");