JavaScript动态实现表格添加、删除、插入、上移、下移一行功能
2010-08-26 16:50
1296 查看
<!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 runat="server">
<title>Type</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="950" border="0" cellspacing="0" cellpadding="0" id="categoryTable">
<tr>
<td>
Category Name
</td>
<td>Add sub-category</td>
<td>Move</td>
<td>Down</td>
<td>Delete</td>
</tr>
</table>
<input type="button" value="Add a new category" onclick="AddNewCategory()" />
</div>
</form>
<script type="text/javascript">
function AddNewCategory()
{
//添加一行
var i =categoryTable.rows.length;
var nameId ="txtName"+i;
var subBtnId = "btnAddSub"+i;
var moveId = "btnMove"+i;
var downId = "btnDown"+i;
var deleteId = "btnDelete"+i;
var newTr = categoryTable.insertRow();
//添加列
var nameTd = newTr.insertCell();
var subBtnTd = newTr.insertCell();
var moveTd = newTr.insertCell();
var downTd = newTr.insertCell();
var deleteTd = newTr.insertCell();
//设置列内容和属性
nameTd.innerHTML = '<input id="'+ nameId +'" type="text" width="190px" />';
subBtnTd.innerHTML = '<input id="'+ subBtnId +'" type="button" value="Add sub-category" onclick="AddSubCategory()" style="background-color: #FFCC99" />';
moveTd.innerHTML = '<input id="'+ moveId +'" type="button" value="Move" onclick="Move_up(this)" />';
downTd.innerHTML = '<input id="'+ downId +'" type="button" value="Down" onclick="Move_down(this)" />';
deleteTd.innerHTML = '<input id="'+ deleteId +'" type="button" value="Delete" onclick="DelRow()" />';
}
function AddSubCategory()
{
//添加一行
var rowIndex = window.event.srcElement.parentElement.parentElement.rowIndex + 1;
var i =categoryTable.rows.length;
var nameId ="txtSubName"+i;
var subBtnId = "btnAddSubT"+i;
var moveId = "btnSubMove"+i;
var downId = "btnSubDown"+i;
var deleteId = "btnSubDelete"+i;
var newTr = categoryTable.insertRow(rowIndex);
//添加列
var nameTd = newTr.insertCell();
var subBtnTd = newTr.insertCell();
var moveTd = newTr.insertCell();
var downTd = newTr.insertCell();
var deleteTd = newTr.insertCell();
//设置列内容和属性
nameTd.innerHTML = '<input id="'+ nameId +'" type="text" width="150px" />';
subBtnTd.innerHTML = '<input id="'+ subBtnId +'" type="button" value="Add sub-category" />';
moveTd.innerHTML = '<input id="'+ moveId +'" type="button" value="Move" onclick="Move_up(this)" />';
downTd.innerHTML = '<input id="'+ downId +'" type="button" value="Down" onclick="Move_down(this)" />';
deleteTd.innerHTML = '<input id="'+ deleteId +'" type="button" value="Delete" onclick="DelRow()" />';
}
function DelRow()
{
//删除一行
//获得行索引
//两个parentElement分别是TD和TR哟,rowIndex是TR的属性
//this.parentElement.parentElement.rowIndex
var getRow = window.event.srcElement.parentElement.parentElement.rowIndex;
categoryTable.deleteRow(getRow);
}
function Move_up(src)
{
//上移一行
var rowIndex=src.parentElement.parentElement.rowIndex;
if (rowIndex>=2)
change_row(rowIndex-1,rowIndex);
}
function Move_down(src)
{
//下移一行
var rowIndex=src.parentElement.parentElement.rowIndex;
var tl = document.getElementById("categoryTable");
if (rowIndex<tl.rows.length-1)
change_row(rowIndex+1,rowIndex);
}
function change_row(line1,line2)
{
//执行交换
categoryTable.rows[line1].swapNode(categoryTable.rows[line2]);
}
</script>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Type</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="950" border="0" cellspacing="0" cellpadding="0" id="categoryTable">
<tr>
<td>
Category Name
</td>
<td>Add sub-category</td>
<td>Move</td>
<td>Down</td>
<td>Delete</td>
</tr>
</table>
<input type="button" value="Add a new category" onclick="AddNewCategory()" />
</div>
</form>
<script type="text/javascript">
function AddNewCategory()
{
//添加一行
var i =categoryTable.rows.length;
var nameId ="txtName"+i;
var subBtnId = "btnAddSub"+i;
var moveId = "btnMove"+i;
var downId = "btnDown"+i;
var deleteId = "btnDelete"+i;
var newTr = categoryTable.insertRow();
//添加列
var nameTd = newTr.insertCell();
var subBtnTd = newTr.insertCell();
var moveTd = newTr.insertCell();
var downTd = newTr.insertCell();
var deleteTd = newTr.insertCell();
//设置列内容和属性
nameTd.innerHTML = '<input id="'+ nameId +'" type="text" width="190px" />';
subBtnTd.innerHTML = '<input id="'+ subBtnId +'" type="button" value="Add sub-category" onclick="AddSubCategory()" style="background-color: #FFCC99" />';
moveTd.innerHTML = '<input id="'+ moveId +'" type="button" value="Move" onclick="Move_up(this)" />';
downTd.innerHTML = '<input id="'+ downId +'" type="button" value="Down" onclick="Move_down(this)" />';
deleteTd.innerHTML = '<input id="'+ deleteId +'" type="button" value="Delete" onclick="DelRow()" />';
}
function AddSubCategory()
{
//添加一行
var rowIndex = window.event.srcElement.parentElement.parentElement.rowIndex + 1;
var i =categoryTable.rows.length;
var nameId ="txtSubName"+i;
var subBtnId = "btnAddSubT"+i;
var moveId = "btnSubMove"+i;
var downId = "btnSubDown"+i;
var deleteId = "btnSubDelete"+i;
var newTr = categoryTable.insertRow(rowIndex);
//添加列
var nameTd = newTr.insertCell();
var subBtnTd = newTr.insertCell();
var moveTd = newTr.insertCell();
var downTd = newTr.insertCell();
var deleteTd = newTr.insertCell();
//设置列内容和属性
nameTd.innerHTML = '<input id="'+ nameId +'" type="text" width="150px" />';
subBtnTd.innerHTML = '<input id="'+ subBtnId +'" type="button" value="Add sub-category" />';
moveTd.innerHTML = '<input id="'+ moveId +'" type="button" value="Move" onclick="Move_up(this)" />';
downTd.innerHTML = '<input id="'+ downId +'" type="button" value="Down" onclick="Move_down(this)" />';
deleteTd.innerHTML = '<input id="'+ deleteId +'" type="button" value="Delete" onclick="DelRow()" />';
}
function DelRow()
{
//删除一行
//获得行索引
//两个parentElement分别是TD和TR哟,rowIndex是TR的属性
//this.parentElement.parentElement.rowIndex
var getRow = window.event.srcElement.parentElement.parentElement.rowIndex;
categoryTable.deleteRow(getRow);
}
function Move_up(src)
{
//上移一行
var rowIndex=src.parentElement.parentElement.rowIndex;
if (rowIndex>=2)
change_row(rowIndex-1,rowIndex);
}
function Move_down(src)
{
//下移一行
var rowIndex=src.parentElement.parentElement.rowIndex;
var tl = document.getElementById("categoryTable");
if (rowIndex<tl.rows.length-1)
change_row(rowIndex+1,rowIndex);
}
function change_row(line1,line2)
{
//执行交换
categoryTable.rows[line1].swapNode(categoryTable.rows[line2]);
}
</script>
</body>
</html>
相关文章推荐
- Android中RecyclerView的item中控件的点击事件添加删除一行、上移下移一行的代码实现
- 点击按钮实现表格动态添加或删除一行
- JS实现的表格操作类详解(添加,删除,排序,上移,下移)
- 通过javascript实现动态添加删除表格的行
- JS小功能(操作Table--动态添加删除表格及数据)实现代码
- JS实现的表格操作类详解(添加,删除,排序,上移,下移)
- 基于JavaScript实现动态添加删除表格的行
- jquery实现table动态添加行、删除行以及行的上移和下移
- JQUERY动态绘制表格,实现动态添加一行,删除一行
- JS小功能(操作Table--动态添加删除表格及数据)实现代码
- jquery实现table动态添加行、删除行以及行的上移和下移
- javascript表格操作大全:表格排序/倒序、动态添加列、批量删除、删除一行、隔行变色、鼠标悬浮切换背景色、全选/反选。(IE、火狐都兼容)
- JS实现动态表格的添加,修改,删除功能(推荐)
- javascript动态生成表格,并实现对表格行的添加和删除
- 自己修改, jquery实现table动态添加行、删除行以及行的上移和下移
- jQuery实现的简单动态添加、删除表格功能示例
- jQuery + JavaScript 实现的动态添加文本框功能 和 动态删除文本框功能(二)
- jquery实现table动态添加行、删除行以及行的上移和下移
- Android中RecyclerView的item中控件的点击事件添加删除一行、上移下移一行的代码实现
- 基于JavaScript实现动态添加删除表格的行