javascript动态创建表格(制作动态表格)

http://www.itjxue.com  2023-01-29 10:37  来源:未知  点击次数: 

怎么用javascript创建表格

方法一:最原始的方法,创建一一元素

?var?a1=document.createElement("table");

?var?a2=document.createElement("tbody");

?var?a3=document.createElement("tr");

?var?a4=document.createElement("td");

?//开始appendchild()追加各个元素

?a3.appendChild(a4);

?a2.appendChild(a3);

?a1.appendChild(a2);

方法二:利用table对象里面含有的函数:插入行和插入列

var?tabNode=document.createElement("table");

var?trNode=tabNode.insertRow();

var?tdNode=trNode.insertCell;

tabNode.innerHTML="这是采用table对象里面的函数创建的"

注意:利用原始方法,一个个createElement时候,必须要添加一个tbody对象

动态的创建和删除:

创建表格,通过输入的值:

function?createTable()?{

????tableNode?=?document.createElement("table");?//获得对象???

????tableNode.setAttribute("id",?"table")

????var?row?=?parseInt(document.getElementsByName("row1")[0].value);?//获得行号?

????//alert(row);???

????if?(row?=?0?||?isNaN(row))?{

????????alert("输入的行号错误,不能创建表格,请重新输入:");

????????return;

????}

????var?cols?=?parseInt(document.getElementsByName("cols1")[0].value);

????if?(isNaN(cols)?||?cols?=?0)?{

????????alert("输入的列号错误,不能创建表格,请重新输入:");

????????return;

????}

????//上面确定了?现在开始创建??

????for?(var?x?=?0;?x??row;?x++)?{

????????var?trNode?=?tableNode.insertRow();

????????for?(var?y?=?0;?y??cols;?y++)?{

????????????var?tdNode?=?trNode.insertCell();

????????????tdNode.innerHTML?=?"单元格"?+?(x?+?1)?+?"-"?+?(y?+?1);

????????}

????}

????document.getElementById("div1").appendChild(tableNode);?//添加到那个位置?

}

删除行:

function?delRow()?{

????//要删除行,必须得到table对象才能删除,所以在创建的时候必须要设置table对象的?id?方便操作?

????var?tab?=?document.getElementById("table");?//获得table对象??

????if?(tab?==?null)?{

????????alert("删除的表不存在!")

????????return;

????}

????var?rows?=?parseInt(document.getElementsByName("delrow1")[0].value);?//获得要删除的对象??

????if?(isNaN(rows))?{

????????alert("输入的行不正确。请输入要删除的行。。。");

????????return;

????}

????if?(rows?=?1??rows?=?tab.rows.length)?{

????????tab.deleteRow(rows?-?1);

????}?else?{

????????alert("删除的行不存在!!");

????????return;

????}?

}

删除列:

//删除列要麻烦些,?要通过行来进行删除???

//?一行的cells的长度就是列的个数???

//tab.rows[x].deleteCell(cols-1)

function?delCols()?{

????//获得table对象??

????var?tab?=?document.getElementById("table");

????if?(tab?==?null)?{

????????alert("删除的表不存在!!");

????????return;

????}

????//获得文本框里面的内容????

????var?cols?=?parseInt(document.getElementsByName("delcols1")[0].value);

????//检查是否可靠???

????if?(isNaN(cols))?{

????????alert("输入不正确。请输入要输出的列。。");

????????return;

????}

????if?(!(cols?=?1??cols??tab.rows[0].cells.length))?{

????????alert("您要删除的行不存在!!");

????????return;

????}

????for?(var?x?=?0;?x??tab.rows.length;?x++)?{//所有的行??

????????tab.rows[x].deleteCell(cols?-?1);

????}?

}

html中如何使用js动态添加表格

一、动态加载表格

1.首先在html中为表格的添加位置设置id

即是在html的body标签内部写一个div标签表明表格要添加到此div的内部。如下

div id="tdl"div

2.在javascript中写添加表格的语句

若在当前html文件中,则写在script标签内部,如

复制代码 代码如下:

script type="text/javascript"

document.getElementById("tbl").innerHTML="tabletrtd/td/tr/table" //此处添加的表格可根据自己需要创建

/script

若是通过引入js文件,则在js文件(假设是test.js)中直接写如下语句

复制代码 代码如下:

document.getElementById("tbl").innerHTML="tabletrtd/td/tr/table"

然后再引入自己的html文件

复制代码 代码如下:

script type="text/javascript" src="test.js"/script

二、 动态添加表格行

1.首先在html中为表格行的添加位置设置id,此位置必须是tbody内部(不是特别准确,但根据我的测试就得到此结论,有其他的方法请留言,谢谢),如下

复制代码 代码如下:

table

thead/thead

tfoottfoot //tfoot与thead是与tbody配套使用,但我在写的时候,没用也可以。

tbody id="rows"/tbody

/table

[\s\S ]*\n

2.在javascript内容中,要先创建行和单元格,再在.tbody中添加行,如下

[code]

row=document.createElement("tr"); //创建行

td1=document.createElement("tr"); //创建单元格

td1.appendChild(document.createTextNode("content")); //为单元格添加内容

row.appendChild(td1); //将单元格添加到行内

document.getElementById("rows").append(row); //将行添加到tbody中

js动态添加表格

script type="text/javascript"

var $ = function(id){

return document.getElementById(id);

}

//全选

function checkAll(target) {

var checkeds = document.getElementsByName("b_id");

for (var i = 0; i checkeds.length; i++) {

checkeds[i].checked = target.checked;

}

}

//刷新行号

function refreshRowNo() {

var tbody = $("tbody");

for (var i = 0; i tbody.rows.length; i++) {

tbody.rows[i].cells[0].innerHTML = i + 1;

}

}

//添加行

function AddRow() {

var tbody = $("tbody");

var row = tbody.insertRow(tbody.rows.length);

row.insertCell(row.cells.length);

row.insertCell(row.cells.length).innerHTML = 'input type="checkbox" name="b_id" /';

row.insertCell(row.cells.length).innerHTML = 'input type="text" name="name" /';

row.insertCell(row.cells.length).innerHTML = 'input type="text" name="number" /';

row.insertCell(row.cells.length).innerHTML = 'input type="text" name="price" /';

row.insertCell(row.cells.length).innerHTML = 'input type="text" name="sum" /';

refreshRowNo();

}

//删除行

function DelRow() {

var checkeds = document.getElementsByName("b_id");

var ischeck = false;

for (var i = checkeds.length - 1; i = 0; i--) {

if (checkeds[i].checked) {

ischeck = true;

break;

}

}

if (ischeck) {

if (confirm("确定删除选中行?")) {

for (var i = checkeds.length - 1; i = 0; i--) {

if (checkeds[i].checked) {

var index = checkeds[i].parentNode.parentNode.rowIndex;

$("tbody").deleteRow(index - 1);

}

}

refreshRowNo();

}

} else {

alert("请选中需要删除的行!");

}

}

//保存

function Save() {

var detail = [],

tbody = $("tbody");

for (var i = 0; i tbody.rows.length; i++) {

var name = tbody.rows[i].cells[2].childNodes[0].value;

var number = tbody.rows[i].cells[3].childNodes[0].value;

var price = tbody.rows[i].cells[4].childNodes[0].value;

var sum = tbody.rows[i].cells[5].childNodes[0].value;

var item = name + "^" + number + "^" + price + "^" + sum;

detail.push(item);

}

var detailstr = detail.join("|");

$("detail").value = detailstr;

$("myform").submit();

}

/script

form name="myform" action="AddOrder.aspx" method="post"

input type="hidden" id="detail" name="detail" /

ul

li采购单编号:input type="text" id="CGDBH" name="CGDBH" //li

li

供应商名称:input type="text" id="GYSMC" name="GYSMC" /

input type="button" onclick="AddRow()" value="增加一行" /

input type="button" onclick="DelRow()" value="删除" /

input type="button" onclick="Save()" value="保存" /

/li

/ul

table cellpadding="1" cellspacing="2"

tr

th style="width:60px"序号/th

th style="width:20px"input type="checkbox" onclick="checkAll(this)" //th

th style="width:120px"名称/th

th style="width:120px"数量/th

th style="width:120px"单价/th

th style="width:120px"总金额/th

/tr

tbody id="tbody"

tr

td1/td

tdinput type="checkbox" name="b_id" //td

tdinput type="text" name="name" //td

tdinput type="text" name="number" //td

tdinput type="text" name="price" //td

tdinput type="text" name="sum" //td

/tr

/tbody

/table

/form

如何使用JavaScript创建一个动态表格

//?你的?HTML?的?body?中添加如下内容

//?一个?div?用来放生成的?table?;?一个按钮执行?create?

//?div?id="div"/div?

//?input?type="button"?onclick="create()"?/?

//?以下是?js?方法

script?src=""?type="text/javascript"/script

script?type="text/javascript"

????function?create()?{

????????//?使用?$("table/table")?生成一个?table

????????var?tab?=?$("table?border='1'/table");

????????//?3?行循环3次

????????for?(var?i?=?1;?i?=?3;?i++)?{

????????????//?每次生成一个?tr/tr

????????????var?row?=?$("tr/tr");

????????????//?4?列循环?4?次

????????????for?(var?j?=?1;?j?=?4;?j++)?{

????????????????//?给?tr/tr?append(添加)??tdi行j列/td

????????????????row.append($("td"?+?i?+?"行"?+?j?+?"列"?+?"/td"));

????????????}

????????????//?给?table/table?每次循环添加上边的?tr****/tr

????????????tab.append(row);

????????}

????????//?最后把生成的?table***/table?放到?id=div?的控件中

????????$("#div").append(tab);

????}

/script

(责任编辑:IT教学网)

更多

推荐DNS服务器文章