使用Javascript在html表中动态添加多行
使用JavaScript在html表中添加一行并删除它很简单。但是,是否可以通过只调用一次addrow函数来添加多行(如2行或更多行)?添加的行将具有不同的元素,例如第一行将具有textfield,另一行具有textarea等等使用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
在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不见了。我的错。再一次抱歉。