DOM创建table

本文介绍了一种使用JavaScript动态创建和更新HTML表格的方法。首先通过检查现有表格并清除旧数据来准备页面,然后根据输入数据集创建新的表格结构。此外,还提供了一个示例,展示如何在用户界面上动态添加行,并收集这些行中的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function deleteOldTable() {
delRow = document.getElementsByTagName("table").length
//此句仅在本例中使用,因为本例中已经有一个table了,因此不能删除,需要根据情况变化一下2005.11.17
if(delRow == 1) return

var node = document.getElementsByTagName("table")[delRow-1]; //表格
var c = node.childNodes.length
for(i=0;i<c;i++)
node.removeChild(node.childNodes[0]); //删除全部单元行
}

//传入DataSet的一个实例即可
function makeTable(m_ds) {

deleteOldTable() //先清除以前的结果

var table = document.createElement("table");
table.setAttribute("border","1");
table.setAttribute("width","100%");

document.body.appendChild(table);
var header = table.createTHead();
var headerrow = header.insertRow(0);
headerrow.insertCell(0).appendChild(document.createTextNode("姓名"));
headerrow.insertCell(1).appendChild(document.createTextNode("职业"));
headerrow.insertCell(2).appendChild(document.createTextNode("工资"));

for(var i=0;i<m_ds.getCount();i++) {
var name = m_ds.getAttribute(i,"name")
var job = m_ds.getData(i,"job")
var salary = m_ds.getData(i,"salary")

var row = table.insertRow(i+1);
row.insertCell(0).appendChild(document.createTextNode(name));
row.insertCell(1).appendChild(document.createTextNode(job));
row.insertCell(2).appendChild(document.createTextNode(salary));
}
}

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
/*
动态添加table.将table中的text的值存入另一text中,在后台得到另一text的值
注意:1。OnChanged将“text的值存入另一text中”。如果此事件写入后台代码,将得不到。因为被postback掉了。
故先存,再运行后台代码。
2。在html中有一table,名字为filetb。
如果需要动态修改,在table里添加literal.text.
*/
var allCount;
allCount=0;
function addAttachment() {

allCount++;
var Num,p,myrow,indexnewrow,c1,c2,c3;
var rown=filetb.rows.length;

myrow=filetb.insertRow(rown-1);
myrow.id="tdt"+allCount;
myrow.name="tdt"+allCount;
myrow.className="smallFont";

c1=myrow.insertCell();
c1.width="100";
c1.align="right";
c1.innerHTML="<p align=right>代码" + (allCount) + ":";

c2=myrow.insertCell();
c2.align="left";
c2.innerHTML="<INPUT type='text' onchange='return GetValue()' style='width:200' class=t1 name=txtCode"+(allCount)+" MaxLength='50'>";

c3=myrow.insertCell();
c3.align="left";
c3.innerHTML="&nbsp;&nbsp;&nbsp;<a href='javascript:removeatt(" + allCount + ");'>删除</a>";

}

function GetValue()
{
var id;
var a;
var b;
for(i=0;i<filetb.rows.length;i++)
{
a = filetb.rows(i).cells(0).innerText;
a = a.substring(2,3);
id = "txtCode" + a;
document.all("txt").value += document.all(id).value;
}
}

function removeatt(ln)
{
var i
var tdname
var tdln
var line=ln;
if (line>0) {
for (i=0;i<filetb.rows.length;i++) {
tdname=filetb.rows[i].name;
tdln=tdname.substring(3,tdname.length);
if (tdln==line) {
filetb.deleteRow(i);
break;
}
}
}
}
</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="" runat="server">
<input type=button onclick="return addAttachment()" id=btnNew value=click />
<input type=button onclick="return GetValue()" id=btnGet value=GetValue />
<input type="text" id=txt />
<table id=filetb></table>

</form>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值