控件代码: function Table() { var _objTbl = null,_oTBody = null; var _n = null; var _r = null; var _c = null; // 创建表格元素 this.Create = function(n,r,c) { _r = (null == r) ? 1 : r; _c = (null == c) ? 1 : c; _n = (null == n) ? "nTbl" : n; _objTbl = document.createElement("TABLE"); _oTBody = document.createElement("TBODY"); _objTbl.id = _n; _objTbl.style.border="1px solid blue"; // 表格(table)样式 for(i=0;i<_r;i++) { this.CreateRow(i); } _objTbl.appendChild(_oTBody); return _objTbl; } // 创建表格的行 this.CreateRow = function(rownum) { var n = _n + "_tr_" + rownum.toString(); var objRow = document.createElement("TR"); objRow.id = n; _oTBody.appendChild(objRow); for(j=0;j<_c;j++) { this.CreateCell(objRow,i,j); } } // 创建表格的列 this.CreateCell = function(objRow,rownum,cellnum) { var n = _n + "_tr_"+ rownum + "_td_" + cellnum.toString(); var objCell = document.createElement("TD"); objCell.id = n; objCell.title = n; objCell.innerText = _n + "=" + rownum + " , " + cellnum; // 设置单元格里的值 objCell.style.border="1px solid gray";// 单元格(td)样式 // 表格操作事件 //objCell.onclick = function(){var obj = new Table(); obj.DeleteRow(_n,rownum);}; objCell.onclick = function(){var obj = new Table(); obj.DeleteCell(_n,rownum,cellnum);}; objRow.appendChild(objCell); } // 删除单元格所在的行 this.DeleteRow = function(tblname,rownum) { if((null == rownum) || (null == tblname)) return; var cellname = tblname + "_tr_" + rownum.toString() var obj = $(cellname); var objBody = obj.parentNode; objBody.removeChild(obj); } // 删除单元格所在的列 this.DeleteCell = function(tblname,rownum,cellnum) { if((null == rownum) || (null == cellnum) || (null == tblname)) return; var cellname = tblname + "_tr_"+ rownum + "_td_" + cellnum.toString(); var objcell = $(cellname); var objBody = objcell.parentNode.parentNode; var objTable = objBody.parentNode; var x = objTable.rows.length; for(i=objTable.rows.length; i > 0; i--) { var r = i-1; var row = $(tblname + "_tr_"+ r.toString()); var cell = $(tblname + "_tr_"+ r + "_td_" + cellnum.toString()); row.removeChild(cell); } } // 填充表格数据 this.SetDate = function(v) { if(null == v) return; for(i = 0; i < v.length; i++) { //_objTbl.rows[i].cells[3].innerText.innerText = v[i].CompName; _objTbl.rows[i].cells[1].innerText = v[i].CompName; _objTbl.rows[i].cells[2].innerText = v[i].CompAddr; } } } function $(id) { return document.getElementById(id); } 测试: <html> <head> <title> Create Table </title> <mce:script language="javascript" type="text/javascript" src ="Table.js"></mce:script> </head> <mce:script language="JavaScript"><!-- // 创建表格 function Create() { var value = [ {'CompName':'昆山总公司','CompAddr':'昆山市'}, {'CompName':'苏州分公司','CompAddr':'aaaaa'}, {'CompName':'常熟分公司','CompAddr':'bbbbb'}, {'CompName':'南京分公司','CompAddr':'ccccc'}, {'CompName':'无锡分公司','CompAddr':'ddddd'} ]; var table = new Table(); var tblname = GetRandomNum(1,5) ; var objTbl = table.Create(tblname,8,3); table.SetDate(value); $("Container").appendChild(objTbl); } // 随机表格名 function GetRandomNum(Min,Max) { var Range = Max - Min; var Rand = Math.random(); var retval = (Min + Math.round(Rand * Range)); return "tbl" + retval; } function Print() { alert(document.body.innerHTML); } // --></mce:script> <body> <div id="Container" style="border:1px solid red" mce_style="border:1px solid red"></div> <input type="button" value="创建表格" onclick="Create()" /> <input type="button" value="打印表格" onclick="Print()" /> </body> </html>