【问题标题】:jquery: using appendTo in second to last row of tablejquery:在表的倒数第二行中使用 appendTo
【发布时间】:2009-10-29 17:02:38
【问题描述】:

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

$(myblob).appendTo(someotherblob);

我该如何做同样的事情,但将 myblob 附加到 someotherblob 内的倒数第二行。在这种情况下 someotherblob 是一个表,我想在倒数第二个上方注入一行。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:
    $('#mytable tr:last').before("<tr><td>new row</td></tr>")
    

    【讨论】:

      【解决方案2】:

      您也可以通过索引选择器选择行。

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

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

      【讨论】:

        【解决方案3】:

        请注意,使用 before() 元素必须已经插入到文档中(如果页面中没有元素,则不能在另一个元素之前插入该元素)。

        所以你必须先插入一些其他blob:

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

        【讨论】:

          【解决方案4】:
          • 感谢orin 给出的答案this one

          • 我试过了,发现所需的列确实移到了整个表的上方。这是因为我不使用 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)');
          

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

          【讨论】:

            【解决方案5】:
            $('#mytable tr:last').prev().after("<tr><td>new row</td></tr>")
            

            【讨论】:

              【解决方案6】:

              我想你想在第二行和最后一行之间为表格的每一行添加一行。

              在这种情况下尝试:

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

              【讨论】:

                【解决方案7】:

                有点摸不着头脑,但我猜您在表格底部有一个页脚,甚至可能是数据条目,并且您想在数据之前添加行页脚。在这种情况下,您应该将表重组为:

                <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 之后。很奇怪吧?

                那么你可以简单地使用这个:

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

                【讨论】:

                  【解决方案8】:

                  就这么简单:

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

                  【讨论】:

                    【解决方案9】:

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

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

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

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2014-06-16
                      • 2018-10-29
                      • 1970-01-01
                      • 2015-01-03
                      • 1970-01-01
                      • 2021-01-06
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多