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

How*_*ley 8 html javascript jquery

我知道如何使用JQuery向表中追加一个新行:

var newRow = $("<tr>..."</tr>");
$("#mytable tbody").append(newRow);
Run Code Online (Sandbox Code Playgroud)

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

mat*_*t b 9

var newRow = $("<tr>...</tr>");
$("#idOfRowToInsertAfter").after(newRow);
Run Code Online (Sandbox Code Playgroud)

关键是知道要在之后插入新行的行的id,或者至少提出一些选择器语法来获取该行.

jQuery文档 after()


Mar*_*usQ 7

where_you_want_it.before(newRow)
Run Code Online (Sandbox Code Playgroud)

要么

newRow.insertBefore(where_you_want_it)
Run Code Online (Sandbox Code Playgroud)

- MarkusQ


And*_*are 5

而不是这个:

$("#mytable tbody").append(newRow);
Run Code Online (Sandbox Code Playgroud)

你会想做这样的事情:

$("#id_of_existing_row").after(newRow);
Run Code Online (Sandbox Code Playgroud)


obe*_*tie 5

附:

var newTr = $('<tr>[...]</tr>');
Run Code Online (Sandbox Code Playgroud)

您可以…

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

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

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

    var existingTrs = $('table#<id> tr')
    $(existingTrs[parseInt(existingTrs.length / 2)]).after(newTr)
    
    Run Code Online (Sandbox Code Playgroud)