使用JavaScript在HTML表中间插入行

使用JavaScript在HTML表中间插入行,javascript,html,Javascript,Html,我有一个包含两行的表 <tr id="row1"><td>first row</td></tr> <tr id="row2"><td>second row</td></tr> 第一行 第二排 我需要使用java脚本在第1行和第2行之间插入几行。 我可以通过使用java脚本创建元素来实现这一点。但我希望使用字符串html内容添加新行。 例如: "<tr><td>This ro

我有一个包含两行的表

<tr id="row1"><td>first row</td></tr>
<tr id="row2"><td>second row</td></tr>
第一行
第二排
我需要使用java脚本在第1行和第2行之间插入几行。 我可以通过使用java脚本创建元素来实现这一点。但我希望使用字符串html内容添加新行。 例如:

"<tr><td>This row is placed between first and second</td></tr>".insertAfter(first row Id);
“此行位于第一行和第二行之间”。插入后面(第一行Id);

有没有这样的方法在中间添加行?

使用jQuery。有一个函数

var newRow=document.createElement(“tr”);
newRow.innerHTML=“此行已放置…等”;
var row2=document.getElementById(“row2”);
row2.parentNode.insertBefore(newRow,row2);
请在此阅读:

var-button=document.getElementById('insert');
var table=document.getElementById('table');
button.onclick=函数(){
变量位置=数学圆(table.rows.length/2);
var row=表.插入行(位置);
row.innerHTML='此行位于'+position+'和'+(parseInt(position)+1)+''之间;
} 
**之后,如果您可以这样使用,您还可以增加您的行id:**
var rowId='#'+tableId+'tr';
var k=0;
$(rowId)。每个(函数(){
var ObjInput=$(this).find('input[type=text],input[type=radio],input[type=checkbox],textarea,select,input[type=img],input[type=hidden],input[type=button],img');
if(ObjInput!=null){
对于(var j=0;j
是的,我可以使用。但是有参考代码吗?如果可以的话,我总是建议不要使用jQuery。下面是一个完全本机的JS解决方案。@NickDugger考虑到jQuery是JS,难道没有人认为可以在jQuery中完成的任何事情都可以在本机JS中完成吗?除非需要,否则使用jQuery是没有意义的。它会增加19 kB的内存,如果你可以使用普通JS来完成同样的事情,而不是专门用于做某事,建议简单地“使用jQuery”既没有帮助也没有效果。如果可以,请始终使用本机JS。
$("#row1").insertAfter("your html");
var newRow = document.createElement("tr");
newRow.innerHTML = "<td>This row is placed... etc.</td>";

var row2 = document.getElementById("row2");
row2.parentNode.insertBefore(newRow, row2);
var button = document.getElementById('insert');

var table = document.getElementById('table');

button.onclick = function() {

var position=Math.round(table.rows.length / 2);

var row = table.insertRow(position);

row.innerHTML = '<td>This row is placed between '+position+' and '+(parseInt(position)+1)+'</td>';
} 

 **after that if u can use like that u can increment ur row id also:**


 var rowId = '#' + tableId + ' tr';
    var k = 0;
    $(rowId).each(function () {
        var ObjInput = $(this).find('input[type=text],input[type=radio],input[type=checkbox],textarea,select,input[type=img],input[type=hidden],input[type=button],img');
        if (ObjInput != null) {
            for (var j = 0; j < ObjInput.length; j++) {
                var inputId = $(ObjInput[j]).attr('id');
                inputId = inputId.replace(/_[0-9]{1,2}/g, '_' + k);
                $(ObjInput[j]).attr('id', inputId);
                $(ObjInput[j]).attr('name', inputId);
            }
            k++;
        }
    });