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>
$('#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>