使用Javascript在html表中动态添加多行

使用Javascript在html表中动态添加多行,javascript,jquery,html-table,Javascript,Jquery,Html Table,使用JavaScript在html表中添加一行并删除它很简单。但是,是否可以通过只调用一次addrow函数来添加多行(如2行或更多行)?添加的行将具有不同的元素,例如第一行将具有textfield,另一行具有textarea等等 在html中是否有其他替代方法可以做到这一点 您可以如下定义您的方法: addRow(var rowCount) { for(var i=0; i<rowCount; i++) { // Your current implement

使用JavaScript在html表中添加一行并删除它很简单。但是,是否可以通过只调用一次addrow函数来添加多行(如2行或更多行)?添加的行将具有不同的元素,例如第一行将具有textfield,另一行具有textarea等等


在html中是否有其他替代方法可以做到这一点

您可以如下定义您的方法:

addRow(var rowCount)
{
    for(var i=0; i<rowCount; i++)
    {
        // Your current implementation to add a row
    }
}

同样,可以定义deleteRowvar rowCount。

我自己通过编写类似于以下内容的代码解决了这个问题:

添加三行,第一行有一个文本字段,第二行有一个文本区域,第三行有一个按钮

function addRow(tableId)
 {
  var addrow=1;
  var table=document.getElementById(tableId);
  var rowCount=table.rows.length;
  for(var i=1;i<=3;i++)
   {
    if(addrow==1)
    {
      var newRow=table.insertRow(rowCount);
      var cell0=newRow1.insertCell(0);
      var element0=document.createElement("input");
      element0.type="text";
      cell0.appendChild(element0);
    }
    if(addrow==2)
    {
      var newRow2=table.insertRow(rowCount);
      var cell0=newRow1.insertCell(0);
      var element0=document.createElement("textarea");
      cell0.appendChild(element0);
    }
    if(addrow==3)
    {
      var newRow3=table.insertRow(rowCount);
      var cell0=newRow1.insertCell(0);
      var element0=document.createElement("input");
      element0.type="button";
      cell0.appendChild(element0);
    }
addrow++;
   }
 }
每次for循环运行时,表中都会添加一个新的html元素,因此我会动态添加三行,每行都有一个不同的元素。

函数gen_textboxtr,id,名称,类型,值{ td=document.createElementtd; tr.td; var input=document.createElementinput; input.setAttributeid,id; input.setAttributename,名称; iftype==文本{ input.setAttributetype,文本; } 如果type==隐藏,则为else{ input.setAttributetype,隐藏; } 否则{ input.setAttributetype,通过; } input.setAttributevalue,值; td.1输入; } 函数gen_hiddenboxnode,id,名称,值{ var input=document.createElementinput; input.setAttributeid,id; input.setAttributename,名称; input.setAttributetype,隐藏; input.setAttributevalue,值; node.appendChildinput; } 功能gen_labeltr,id,文本{ td=document.createElementtd; tr.td; var输入=document.createElementlabel; input.setAttributeid,id; var rtext=document.createTextNodetext; input.appendChildrtext; td.信息输入; } 函数gen_labeltr,id,text,td_类{ td=document.createElementtd; td.setAttributeclass,td_类; tr.td; var输入=document.createElementlabel; input.setAttributeid,id; var rtext=document.createTextNodetext; input.appendChildrtext; td.信息输入; } 函数getKeyValueFromJSONOBJ,valueNames{ 变量值,文本=,临时=; obj='{ValueText:[';
forvar i=0;你有什么代码可以给我们看吗?@WooCaSh我不这么认为……但如果有,也许我无法理解,可能是我在这里写代码时出错了。如果是这样的话,需要你的帮助。否则,与我实际使用的代码类似的代码工作得非常好!!!你有问题吗r addrow=1;,但决不更改param addrow,因此在for语句中,此addrow始终等于1。因此,首先只执行if。@WooCaSh在for循环结束之前,在所有if条件之后,我通过addrow++语句增加了addrow的值。因此,每当for循环完成一个周期时,addrow参数都会增加。对不起,ea对我来说,P不见了。我的错。再一次抱歉。