javascript动态生成表格

var str='<table><tr><td>1</td><td>2</td><td>3</td></tr></table>';

$('#div').append(str);


var min_tr = 5, min_td = 7;
var tr = Math.floor(Math.random() * 10) + min_tr;
for(var i = 0; i < tr; i ++) {
var dom = '<tr>';
var td = Math.floor(Math.random() * 10) + min_td;
console.log(td);
while( td -- > 0) {
dom += '<td></td>'
}
dom += '</tr>';
$('table').append(dom);
}

问题详情

圈帖

取消
大家都在搜
搜索历史

新人大礼
百元红包等你抽

<a href="javascript:addrow();" style="padding:6px; float:right;">添加选项<a>                            
<table id="tableSelect" border="0" cellpadding="4" cellspacing="1">                                
<tr>
<td width="60">序号</td>
<td>选项内容</td>
<td width="60">操作</td>
</tr>
</table><script type="text/javascript">
var tableSelect = document.getElementById("tableSelect");
var hfSelectCount = document.getElementById("hfSelectCount ");
var hfDelIds = document.getElementById("hfDelIds ");
function addrow(){    
var r = tableSelect.insertRow(tableSelect.rows.length);//插入一行tr    
var c = r.insertCell(0);//插入一个单元格td    
var rIndex = tableSelect.rows.length - 1;   
 c.innerHTML = rIndex;   
 c = r.insertCell(1);   
c.innerHTML = "<input type=\"text\" id=\"txtSubject_" + rIndex + "\" name=\"txtSubject_" + rIndex + "\"/>";  
  c = r.insertCell(2);  
  c.innerHTML = "<a href='javascript:delrow(" + rIndex + ");'>删除</a>";   
 hfSelectCount.value = tableSelect.rows.length;    
document.getElementById("txtSubject_" + rIndex).focus();}

function delrow(index){    
var txtSID = document.getElementById("txtSID_" + index);   
 if(txtSID)    {       
  hfDelIds.value += "," + txtSID.value;    
}
  tableSelect.deleteRow(index);  
  for(var i = index; i < tableSelect.rows.length;i++)    {        
tableSelect.rows[i].cells[0].innerHTML = i;        var txtS = tableSelect.rows[i].cells[1].getElementsByTagName("input");       
 for(var j = 0; j < txtS.length; j++)        {          
  if(txtS[j].type == "text")            {                
txtS[j].id = "txtSubject_" + i;               
 txtS[j].name = "txtSubject_" + i;          
  }            else            {               
 txtS[j].id = "txtSID_" + i;                
txtS[j].name = "txtSID_" + i;          
  }        
}       
 tableSelect.rows[i].cells[2].innerHTML = "<a href='javascript:delrow("+i+");'>删除</a>";  
  }    

hfSelectCount.value = tableSelect.rows.length;}hfSelectCount.value = tableSelect.rows.length;</script>


<script type="text/javascript" src="Scripts/jquery-1.3.2.js"></script> 
<script type="text/javascript"> 
function CreateTable(rowCount,cellCount) 

var table=$("<table border=\"1\">"); 
table.appendTo($("#createtable")); 
for(var i=0;i<rowCount;i++) 

var tr=$("<tr></tr>"); 
tr.appendTo(table); 
for(var j=0;j<cellCount;j++) 

var td=$("<td>"+i*j+"</td>"); 
td.appendTo(tr); 


trend.appendTo(table); 
$("#createtable").append("</table>"); 

</script> 
<body> 
<input type="button" value="添加表格" onClick="CreateTable(5,6)" > 
<input type="button" value="添加行"> 
<p id="createtable"></p> 
<p id="createrow"></p> 
</body> 


var table = document.getElementById("tableId")
增加一行:table.insertRow()   //默认添加到最后一行,添加到指定行用insertRow(index)方法
删除一行:table.deleteRow() //默认删除最后一行,删除指定行用deleteRow(index)方法
增加一列:table.insertCell()   //默认添加到最后一列,添加到指定列用insertCell(index)方法
删除一列:table.deleteCell()   //默认删除最后一列,删除指定列用deleteCell(index)方法
统计列数:table.rows.item(0).cells.length
统计行数:table.rows.length
设置单元格colspan:cell.colSpan=2 //注意区分大小写, 如果写colspan会报错
获得单元格宽:table.rows[0].cells[0].offsetWidth
获得单元格高:table.rows[0].cells[0].offsetHeight
设置单元格高度:talbe.rows[0].cells[0].width = xxx

说明:
附录:
insertRow() 方法用于在表格中的指定位置插入一个新行。
语法
tableObject.insertRow(index)
返回值
返回一个 TableRow,表示新插入的行。
说明
该方法创建一个新的 TableRow 对象,表示一个新的 <tr> 标记,并把它插入表中的指定位置。
新行将被插入 index 所在行之前。若 index 等于表中的行数,则新行将被附加到表的末尾。
如果表是空的,则新行将被插入到一个新的 <tbody> 段,该段自身会被插入表中。
抛出
若参数 index 小于 0 或大于等于表中的行数,该方法将抛出代码为 INDEX_SIZE_ERR 的 DOMException 异常。

转载于http://blog.csdn.net/cctt_1/archive/2008/01/21/2057233.aspx

javascript动态生成Table是在迫不得以的情况下使用。因为表格会耗费大量的时间进行重绘。 而且如果窗口变化了,还会引起意想不到的格式变化。所以最好不要使用。
先在<form>中添加一个<div id='divTable'></div>下面就可以使用javascript代码来做这个事情:
function createTable(divName)

{

    var div = document.getElementById(divName);
    var table = document.createElement("table");//创建table
    var row = table.insertRow();//创建一行
    var cell = table.insertCell();//创建一个单元
    cell.width = "10";//更改cell的各种属性
    cell.style.backgroundColor = "#999999";
}


你还可以发挥下想象力动态地创建各种各样的控件。上面的function是放置JS文件中的。
如果在html中的调用<script type="..." src="*.js"></script>
这里是创建了一个Table的元素,但是还没有加载到div层中去。
这里最好不使用div.innerHTML也不要使用div.innerText
要使用div.appendChild(table);

Java代码 
var obj = document.createElement("table"); 
    var tbody = document.createElement("tbody"); 
    var tr = document.createElement("tr"); 
    var td = document.createElement("td"); 
    td.innerText = "AAA" 
    tr.appendChild(td); 
    tbody.appendChild(tr); 
    obj.appendChild(tbody); 
    document.all.Form1.appendChild(obj); 
    var obj2 = new Array(); 
    for (var i=0;i<5;i++) 
    {     
        obj2[i] = obj.cloneNode(true); 
        obj2[i].setAttribute("border","1"); 
        document.all.Form1.appendChild(obj2[i]); 
    } 
     


<!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>javascript 动态生成表格</title>
</head>
<body>
<form id="form1" name="form1">
<table id="oTable">
<tbody id="oTBody">
</tbody>
</table>
<SCRIPT LANGUAGE="JScript">
function test()
{
var inputs=document.getElementsByTagName("input");
for(var i=0;i<inputs.length;i++)
{
if(inputs[i].type=="text")
{
alert(inputs[i].id+"="+inputs[i].value);
}
}
}
// 接收参数<可修改>;
var rowNumbers=3; // 行;
var colNumbers=4; // 列;
// 设置表格属性;
var oCaption = oTable.createCaption(); // 在表格中创建空的 caption 元素;
var oTHead = oTable.createTHead(); // 在表格中创建空的 tHead 元素;
var oTFoot = oTable.createTFoot(); // 在表格中创建空的 tFoot 元素;
var oRow, oCell;
var heading = new Array();
/*-------------列数 start------<head>-------*/
for(var i=0;i<colNumbers+1;i++)
{
if(i==0)
{
heading[i]="";
}
else
{
heading[i]="S"+(i);
}
}
oRow = oTHead.insertRow(); // insertRow()方法:在表格中创建新行(tr),并将行添加到 rows 集合中;
for (k=0; k<colNumbers+1; k++)
{
oCell = oRow.insertCell(); // insertCell()方法: 在表格行(tr)中创建新单元格,并将单元格添加到 cells 集合中;
oCell.align = "center";
oCell.style.fontWeight = "bold";
oCell.style.color="#ffffff";
oCell.innerHTML =heading[k];
if(k==0)
{
oCell.bgColor = "#ffffff";
}
else
{
oCell.bgColor = "#666666";
}
}
/*-------------列数 end-------------*/
/*-------------行数 start----<tbody>---------*/
var stock = new Array;
for(var i=0;i<rowNumbers;i++)
{
for(var j=0;j<colNumbers;j++)
{
if(j==0)
{
stock[""+i+","+j+""]="R"+(i+1);
}
else
{
stock[""+i+","+j+""]=j;
}
}
}
for (i=0; i<rowNumbers; i++)
{
oRow = oTBody.insertRow();
for (j=0; j<colNumbers+1; j++)
{
oCell = oRow.insertCell();
// 背景色;
if(j==0)
{
oCell.bgColor = "#999999";
}
else
{
oCell.bgColor = "#ffffff";
}
if(j==0)
{
oCell.innerHTML = stock[i + "," + j];
}
else
{
oCell.innerHTML = "<input type='text' id='"+stock[i+","+0]+"_S"+j+"' name='"+stock[i+","+0]+"_S"+j+"' value='' />";
}
}
}
/*-------------行数 end-------------*/
/*----------------------foot start*/
oRow = oTFoot.insertRow();
oCell = oRow.insertCell();
oCell.innerText="Author:maomao";
oCell.colSpan = colNumbers+1;
oCell.style.fontSize = "12";
oCell.align="center";
oCell.bgColor = "ffffff";
oCaption.innerText = "alan.xue@ebizserve.com"
oCaption.style.fontSize = "12";
oCaption.align = "bottom";
/*----------------------foot end*/
function $(id) {
return document.getElementById(id);
}
</SCRIPT>
<input type="button" value="测试" οnclick="javascript:test();" />
</form>
</body>
</html>


<html> 
<script> 
function dy(){ 
    var row=document.createElement("tr"); 
    var cell=document.createElement("td"); 
    cell.appendChild(document.createTextNode("afsafaf")); 
    row.appendChild(cell); 
    document.getElementById("newbody").appendChild(row); 

 
</script> 
<body> 
<br> 
<a name="top" href="#here">go here</a> 
<br> 
<input type=button value="动态生成" οnclick="dy()"/> 
<br> 
<table> 
    <tbody id="newbody"></tbody> 
</table> 
<br> 
 
</body> 
</html> 


代码如下:
<HTML> <HTML> <HEAD> <TITLE> 动态生成表格 </TITLE> </HEAD>
<script>
function cancle(){
document.all.table1.innerHTML='';
}
function getValue(){
document.all.table1.innerHTML='';

var getTr=document.getElementByIdx_x('inputTr').value;
var getTd=document.getElementByIdx_x('inputTd').value;
//动态创建表格
var newTable=document_createElement_x('table');
var newTbody=document_createElement_x('tbody');
newTable.setAttribute('border','1');
newTable.setAttribute('align','center');
for(var i=1;i<=getTr;i++)
{
var tr=document_createElement_x('tr');
for(var j=1;j<=getTd;j++)
{
var td=document_createElement_x('td');
var textValue=document_createTextNode('第'+i+'行 第'+j+'列');
td.a(textValue);
tr.a(td);
}
newTbody.a(tr);
}
newTable.a(newTbody);
var div=document.getElementByIdx_x('table1');
div.a(newTable);
}
</script>
<BODY>
<table>
<tr>
<td>行数:<input type='text' id='inputTr'/></td>
<td>列数:<input type='text' id='inputTd'/></td><tr>
<tr>
<td>
<input type='button' value='确定' onClick='getValue()'>
</td>
<td>
<input type='button' value='取消' onClick='cancle();'/>
</td>
</tr>
</table>
<div id='table1'>
<p> </p>
</div>
</BODY>
</HTML>

先来看一下需求:在web页面上动态的生成表格,并可以对表格中的数据进行编辑,然后把表格中的数据提交至后端服务器保存。
那么我们首先需要解决的是动态生成表格的问题
1.首先我们需要导入JS库文件。
<script src="../js/jqui/jquery/jquery-1.5.2.min.js" type="text/javascript"></script>


2.然后在页面div中事先创建一个空白表格,可以根据需求而定,我这里是一个带表头的表格
<table border="0" style="text-align: center;" width="100%" id="myTable">
<tr>
<td width="150px;">表头1</td>
<td width="150px;">表头2</td>
<td width="150px;">表头3</td>
<td width="150px;">表头4</td>
<td width="150px;">表头5</td>
<td width="150px;">操作</td>
</tr>
</table>
3.表格创建好后,我们就可以写动态生成表格的关键代码了。我们写一个js方法供触发使用
var num = 0;
function addTable(){
var tableHtml ="";
tableHtml += '<tr id="tr'+num+'">'
+'<td><input class="addtd" id="cnashu1'+num+'" style="width:150px;" type="text" name="cnashu1" /></td>'
+'<td><input class="addtd" id="cnashu2'+num+'" style="width:150px;" type="text" name="cnashu2"/></td>'
+'<td><input class="addtd" id="cnashu3'+num+'" style="width:150px;" type="text" name="cnashu3"/></td>'
+'<td><input class="addtd" id="cnashu4'+num+'" style="width:150px;" type="text" name="cnashu4"/></td>'
+'<td><input class="addtd" id="cnashu5'+num+'" style="width:150px;" type="text" name="cnashu5"/></td>'
+'<td><a style="cursor: pointer; color: blue;" οnclick="removeTr('+num+')">删除</a>'
+'<a id="edit'+num+'" class="edit" style="cursor: pointer; color: blue;" οnclick="editDataByOne('+num+')">修改</a>'
+'<a id="save'+num+'" class="hide" style="cursor: pointer; color: blue;" οnclick="saveByOne('+num+')">保存</a>'
+'</td>'
+'</tr>';

var elements = $("#myTable").children().length; //表示id为“mtTable”的标签下的子标签的个数

$("#myTable").children().eq(elements - 1).after(tableHtml); //在表头之后添加空白行
num++;
}
我们可以看到在<tb>标签中我们添加了<input>标签,主要是用来提供用户输入参数, 而全局变量num,主要是用来区分每一个添加的参数的id的唯一性而存在的。
4.接下来我们对表格进行操作
//删除行
function removeTr(trNum){
$("#tr"+trNum).remove();
}
//编辑行
function editDataByOne(trNum){
$this = $("#tr"+trNum);
$(".addtd",$this).removeAttr("readonly");
}
//保存行
function saveByOne(trNum){
$this = $("#tr"+trNum);
$(".addtd",$this).attr("readonly","readonly");
}
上面我们对表格进行了删除,编辑,保存等操作,具体操作内容可以根据需求调整。(其实后来我发现可以不需要全局num,也可以实现对添加行的操作,至于怎么实现,主要是一些js的操作,有空再研究吧)
至此,我们动态生成表格的页面代码就完结了。
上半篇我们讲到了如何动态生成表格,接下来我们就讲一下如何获取表格中的多条数据,并提交至后台服务器。
在开发之前我也在网上找了一些资料,要么太简洁,要么看不懂,但是他们大多数都提到了使用Json的方式将多个参数传入后台,那么我就根据这个思路编写了如下的代码。
1.首先我们来看一下如何获得表格中的数据,还是结合上边的例子
<div>
<form id="submitForm">
<table border="0" style="text-align: center;" width="100%" id="myTable">
<tr>
<td width="150px;">表头1</td>
<td width="150px;">表头2</td>
<td width="120px;">表头3</td>
<td width="120px;">表头4</td>
<td width="80px;">表头5</td>
<td width="100px;">操作</td>
</tr>
</table>
</form>
<input type="button" value="添加" οnclick="addTable();">
<input type="button" value="提交" οnclick="save();">
</div>
我们可以看到在Table标签的外层我们加了一层form标签,并设置form标签的id。
2.接下来我们根据jQuery的“serialize()”方法获取表格中input标签的参数
var msg = $("#submitForm").serialize(); //获得后的msg的值:canshu1=xxx&canshu2=xxx&canshu3=xxx&canshu4=xxx&canshu5=xxx
3.拿到表格中的数据后,我们根据它值的形式把它转换成json格式的数据
var json = "[{";
var msg2 = msg.split("&"); //先以“&”符号进行分割,得到一个key=value形式的数组
var t = false;
for(var i = 0; i<msg2.length; i++){
var msg3 = msg2[i].split("="); //再以“=”进行分割,得到key,value形式的数组
for(var j = 0; j<msg3.length; j++){
json+="\""+msg3[j]+"\"";
if(j+1 != msg3.length){
json+=":";
}
if(t){
json+="}";
if(i+1 != msg2.length){ //表示是否到了当前行的最后一列
json+=",{";
}
t=false;
}
if(msg3[j] == "canshu5"){ //这里的“canshu5”是你的表格的最后一列的input标签的name值,表示是否到了当前行的最后一个input
t = true;
}
}
if(!msg2[i].match("canshu5")){ //同上
json+=";";
}

}
json+="]";
//最终msg的值就被转换为:[{"key":"value";"key":"value"},{"key":"value";"key":"value"}]格式的json数据
通过上述代码,我们已经成功的将表格中的多条数据转换成了json格式的数据,那么我们就可以通过ajax的方式将Json数据发送到后台处理。
至此,我们获取表格中的多条数据并提交至服务器的代码就编写完了,希望对大家的学习有所帮助。


用js+xml自动生成表格的东西
作者:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="javascript">
function loadXML(handler) {
    var url = "employees.xml";
    if(document.implementation&&document.implementation.createDocument) {
        var xmldoc = document.implementation.createDocument("", "", null);
        xmldoc.onload =  handler(xmldoc, url);
        xmldoc.load(url);
    }
    else if(window.ActiveXObject) {
        var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
        xmldoc.onreadystatechange = function() {
            if(xmldoc.readyState == 4) handler(xmldoc, url);
        }
        xmldoc.load(url);
    }
}
function makeTable(xmldoc, url) {
    var table = document.createElement("table");
    table.setAttribute("border","1");
    table.setAttribute("width","600");
    table.setAttribute("class","tab-content");
    document.body.appendChild(table);
    var caption = "Employee Data from " + url;
    table.createCaption().appendChild(document.createTextNode(caption));
    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("工资"));
    var employees = xmldoc.getElementsByTagName("employee");
    for(var i=0;i<employees.length;i++) {
        var e = employees[i];
        var name = e.getAttribute("name");
        var job = e.getElementsByTagName("job")[0].firstChild.data;
        var salary = e.getElementsByTagName("salary")[0].firstChild.data;
        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));
    }
}
</script>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>

<body onLoad="loadXML(makeTable)">
</body>
</html>


<?xml version="1.0" encoding="gb2312"?>
<employees>
    <employee name="J.Doe">
        <job>Programmer</job>
        <salary>32768</salary>
    </employee>
    <employee name="A.Baker">
        <job>Sales</job>
        <salary>70000</salary>
    </employee>
    <employee name="Big Cheese">
        <job>CEO</job>
        <salary>100000</salary>
    </employee>
</employees>

js做动态表格(可删除,全选,反选,添加行与列,删除选择...)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>动态表格</title>
</head>
<body>
<p>动态表格彻底研究</p>
<p>对表格单元格的添加删除修改并对其进行移动以及拷贝等操作,是目前应用开发中常用的技术</p>
<p>
<input type="button" name="Submit" value="刷新" οnclick="onRefresh()" />
<input type="button" name="Submit2" value="全选" οnclick="selectall()"/>
<input type="button" name="Submit8" value="反选" οnclick="inverse()" />
<input type="button" name="Submit3" value="不选" οnclick="noselect()"/>
<input type="button" name="Submit4" value="添加行与列" οnclick="insert_row()" />
<input type="button" name="Submit7" value="删除选择" οnclick="delRow()" />
<input type="button" name="Submit5" value="拷贝选择" οnclick="copyRow()"/>
<input type="button" name="Submit92" value="居中对齐" οnclick="tableAlign()"/>
<input type="button" name="Submit922" value="隔行变色" οnclick="changeColor()"/>
</p>
<table width="50%" border="1" cellpadding="1" cellspacing="2" bordercolor="#CCCCCC" id="myTable">
<tr>
<td width="7%">
<label>
<input type="checkbox" name="checkbox" value="checkbox" />
</label> </td>
<td width="51%">1</td>
<td width="14%">1</td>
<td width="14%">1</td>
<td width="14%">1</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox2" value="checkbox" /></td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox3" value="checkbox" /></td>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox4" value="checkbox" /></td>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox5" value="checkbox" /></td>
<td>5</td>
<td colspan="2">55</td>
<td>5</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox6" value="checkbox" /></td>
<td>6</td>
<td>6</td>
<td>6</td>
<td>56</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox7" value="checkbox" /></td>
<td>777</td>
<td>7</td>
<td>77</td>
<td>7</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox8" value="checkbox" /></td>
<td>88</td>
<td>8</td>
<td>88</td>
<td>77</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox9" value="checkbox" /></td>
<td>999</td>
<td>99</td>
<td>99</td>
<td>999</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox10" value="checkbox" /></td>
<td>10</td>
<td>10</td>
<td>10</td>
<td>10</td>
</tr>
</table>
<br />
<p></p>
<script type="text/javascript">
var form = document.forms["form1"];
var table = document.getElementById("myTable");
var selectBox = table.getElementsByTagName("input");
var tr = table.getElementsByTagName("tr");
var clicked = true;
function insert_row(){
//alert(table.rows[0].cells.length)
var thisrow = table.insertRow(0);
var thiscell = thisrow.insertCell(0);
thiscell.innerHTML = "<input type=\"checkbox\" name=\"checkbox10\" value=\"checkbox\" />";
var thiscell1 = thisrow.insertCell(1);
thiscell1.innerHTML = "cell";
var thiscell2 = thisrow.insertCell(2);
thiscell2.innerHTML = "cell";
var thiscell3 = thisrow.insertCell(3);
thiscell3.innerHTML = "cell";
var thiscell4 = thisrow.insertCell(4);
thiscell4.innerHTML = "cell";
thiscell4.align = "center";
}
function insert_Cell(){
var y = table.rows[0].insertCell(0);
y.colSpan="2";
y.innerHTML = "sssss";
}
function selectall(){
for(i=0;i<selectBox.length;i++){
selectBox[i].checked = true;
}
}
function noselect(){
for(i=0;i<selectBox.length;i++){
selectBox[i].checked = false;
}
}
function inverse(){
for(i=0;i<selectBox.length;i++){
if(selectBox[i].checked){
selectBox[i].checked = false;
}else{
selectBox[i].checked = true;
}
}
}
function delRow(){
for(i=selectBox.length-1;i>=0;i--){
//alert(typeof(selectBox[i]));
if(selectBox[i].checked){
table.deleteRow(i);
}
}
}
function onRefresh(){
location.reload();
}
function copyRow(){
for(i=0;i<selectBox.length;i++){
if(selectBox[i].checked){
//var copytable = document.getElementById("copyTable");
var tablerow = table.insertRow(table.rows.length);
tablerow.innerHTML = table.rows[i].innerHTML;
}
}
}
function tableAlign(){
for(i=0;i<selectBox.length;i++){
if(selectBox[i].checked && clicked){
table.rows[i].align = "center";
}
}
}
function changeColor(){
var skip = true;
for(i=0;i<tr.length;i++){
if(skip){
tr[i].bgColor = "#cccccc";
skip = false;
}else{
tr[i].bgColor = "#ffffff";
skip = true;
}
}
}
</script>
</body>
</html>
JavaScript动态生成表格可以通过DOM操作来实现。以下是一些基本的步骤: 1. 首先创建一个table元素,并设置其属性(如id、border等)。 2. 创建thead元素和tbody元素,并添加到table中。 3. 创建tr元素作为thead中的一行,并创建th元素作为每列的标题。将th元素添加到tr中,再将tr添加到thead中。 4. 使用for循环或其他方法遍历数据,创建每个数据行,创建td元素用于每列数据。将td元素添加到tr中,再将tr添加到tbody中。 5. 将tbody添加到table中。 6. 最后将table元素添加到DOM中。 以下是一个简单的示例代码: ``` // 创建table元素 var table = document.createElement("table"); table.setAttribute("id", "myTable"); table.setAttribute("border", "1"); // 创建thead元素和tbody元素 var thead = document.createElement("thead"); var tbody = document.createElement("tbody"); // 创建thead中的一行 var tr = document.createElement("tr"); var th1 = document.createElement("th"); var th2 = document.createElement("th"); var th3 = document.createElement("th"); th1.innerHTML = "姓名"; th2.innerHTML = "年龄"; th3.innerHTML = "性别"; tr.appendChild(th1); tr.appendChild(th2); tr.appendChild(th3); thead.appendChild(tr); // 遍历数据,创建每个数据行 for (var i = 0; i < data.length; i++) { var tr = document.createElement("tr"); var td1 = document.createElement("td"); var td2 = document.createElement("td"); var td3 = document.createElement("td"); td1.innerHTML = data[i].name; td2.innerHTML = data[i].age; td3.innerHTML = data[i].sex; tr.appendChild(td1); tr.appendChild(td2); tr.appendChild(td3); tbody.appendChild(tr); } // 将thead和tbody添加到table中 table.appendChild(thead); table.appendChild(tbody); // 将table添加到DOM中 document.body.appendChild(table); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值