代码之家  ›  专栏  ›  技术社区  ›  Howard Pinsley

如何使用JQuery将新的TR插入HTML表的中间?

  •  8
  • Howard Pinsley  · 技术社区  · 17 年前

    我知道如何使用JQuery将新行追加到表中:

    var newRow = $("<tr>..."</tr>");
    $("#mytable tbody").append(newRow);
    

    问题是如何在某个现有行之前创建新行。

    5 回复  |  直到 17 年前
        1
  •  9
  •   Crescent Fresh    17 年前
    var newRow = $("<tr>...</tr>");
    $("#idOfRowToInsertAfter").after(newRow);
    

    关键是知道要在后面插入新行的行的id,或者至少想出一些选择器语法来获得该行。

    jQuery docs on after()

        2
  •  7
  •   MarkusQ    17 年前
    where_you_want_it.before(newRow)
    

    newRow.insertBefore(where_you_want_it)
    

    --马库斯Q

        3
  •  5
  •   Andrew Hare    17 年前

    与其这样:

    $("#mytable tbody").append(newRow);
    

    你会想做这样的事情:

    $("#id_of_existing_row").after(newRow);
    
        4
  •  5
  •   Graham Clark    14 年前

    有:

    var newTr = $('<tr>[...]</tr>');
    

    你可以

    1. 在您知道ID(或任何其他属性)的另一行之后(或之前,如果您选择这样做)插入它:

      $('#<id of the tr you want to insert the new row after>').after(newTr)
      
    2. 在特定行索引后插入它(索引是从0开始的,而不是从1开始的):

      $($('table#<id> tr')[<index>]).after(newTr)
      
    3. 或者正如你提到的,绝对中间是可能的:

      var existingTrs = $('table#<id> tr')
      $(existingTrs[parseInt(existingTrs.length / 2)]).after(newTr)
      
        5
  •  0
  •   Zitun    15 年前

    例如,如果你在表格中放置一个插入图像,它将是这样的:

     <td> <img class=\"insertRow\" src=\"/images/imgInsertRow.jpg\" /> </td>
    

    您的jquery代码:

    $('table td img.insertRow').click(function(){
       var newRow=$('<tr>........</tr>');
       $(this).parent().parent().after(newRow);
    });