JS动态删除表格行
来源:互联网 发布:中国人工智能发展大会 编辑:程序博客网 时间:2024/05/28 11:30
<!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>
<title>js添加删除行和双击变文本框-</title>
<style type="text/css">
*{
font-size:12px;
}
#myTable{
background:#D5D5D5;
color:#333333;
}
#myTable tr{
background:#F7F7F7;
}
#myTable tr th{
height:20px;
padding:5px;
}
#myTable tr td{
padding:5px;
}
</style>
<script type="text/javascript">
function $(obj){
return document.getElementById(obj);
}
var num = 0;
function row(id){
//构造函数
this.id = $(id);
}
row.prototype = {
//插入行
insert:function(){
num = num + 1;
var newTr = this.id.insertRow(-1);
var td_1 = newTr.insertCell(0);
var td_2 = newTr.insertCell(1);
var td_3 = newTr.insertCell(2);
td_1.innerHTML = num;
td_2.innerHTML = "脚本之家 www.jb51.net";
td_3.innerHTML = "<input type='button' onclick='delRow(this)' value='删除' >";
},
//删除行
del:function(obj){
var i = obj.parentNode.parentNode.rowIndex;
this.id.deleteRow(i);
}
}
function addRow(){
var row2 = new row("myTable");
row2.insert();
}
function delRow(obj){
var row1 = new row("myTable");
row1.del(obj);
}
var inputItem; // 输入框句柄
var activeItem; // 保存正在编辑的单元格
//转成文本
function changeToText(obj){
if( obj && inputItem ) {
// 如果存在正在编辑的单元格, 则取消编辑状态, 并将编辑的数据保存起来
var str = " ";
if(inputItem.value != "")
str = inputItem.value;
obj.innerText = str;
}
}
//转成编辑
function changeToEdit(obj){
if( !inputItem ) {
inputItem = document.createElement('input');
inputItem.type = 'text';
inputItem.style.width = '100%';
}
// inputItem.style.display = '';
inputItem.value = obj.innerText; // 将该单元格的数据文本读到控件上
obj.innerHTML = ''; // 清空单元格的数据
obj.appendChild(inputItem);
inputItem.focus();
activeItem = obj;
}
//双击时文本变成文本框
document.ondblclick = function(){
if(event.srcElement.tagName.toLowerCase() == "td"){
if(!inputItem){
inputItem = document.createElement("input");
inputItem.type = "text";
inputItem.style.width = "100%";
}
changeToText();
changeToEdit(event.srcElement);
}else{
event.returnValue = false;
return false;
}
}
//单击时文本框变成文本
document.onclick = function(){
if(event.srcElement.parentNode == activeItem || event.srcElement == activeItem)
return;
else
changeToText(activeItem);
}
</script>
</head>
<body>
<input type="button" onclick="addRow()" value="插入一行" />
<table id="myTable" border="0" cellpadding="0" cellspacing="1">
<tr><th>编号</th><th>姓名</th><th>操作</th></tr>
</table>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>js添加删除行和双击变文本框-</title>
<style type="text/css">
*{
font-size:12px;
}
#myTable{
background:#D5D5D5;
color:#333333;
}
#myTable tr{
background:#F7F7F7;
}
#myTable tr th{
height:20px;
padding:5px;
}
#myTable tr td{
padding:5px;
}
</style>
<script type="text/javascript">
function $(obj){
return document.getElementById(obj);
}
var num = 0;
function row(id){
//构造函数
this.id = $(id);
}
row.prototype = {
//插入行
insert:function(){
num = num + 1;
var newTr = this.id.insertRow(-1);
var td_1 = newTr.insertCell(0);
var td_2 = newTr.insertCell(1);
var td_3 = newTr.insertCell(2);
td_1.innerHTML = num;
td_2.innerHTML = "脚本之家 www.jb51.net";
td_3.innerHTML = "<input type='button' onclick='delRow(this)' value='删除' >";
},
//删除行
del:function(obj){
var i = obj.parentNode.parentNode.rowIndex;
this.id.deleteRow(i);
}
}
function addRow(){
var row2 = new row("myTable");
row2.insert();
}
function delRow(obj){
var row1 = new row("myTable");
row1.del(obj);
}
var inputItem; // 输入框句柄
var activeItem; // 保存正在编辑的单元格
//转成文本
function changeToText(obj){
if( obj && inputItem ) {
// 如果存在正在编辑的单元格, 则取消编辑状态, 并将编辑的数据保存起来
var str = " ";
if(inputItem.value != "")
str = inputItem.value;
obj.innerText = str;
}
}
//转成编辑
function changeToEdit(obj){
if( !inputItem ) {
inputItem = document.createElement('input');
inputItem.type = 'text';
inputItem.style.width = '100%';
}
// inputItem.style.display = '';
inputItem.value = obj.innerText; // 将该单元格的数据文本读到控件上
obj.innerHTML = ''; // 清空单元格的数据
obj.appendChild(inputItem);
inputItem.focus();
activeItem = obj;
}
//双击时文本变成文本框
document.ondblclick = function(){
if(event.srcElement.tagName.toLowerCase() == "td"){
if(!inputItem){
inputItem = document.createElement("input");
inputItem.type = "text";
inputItem.style.width = "100%";
}
changeToText();
changeToEdit(event.srcElement);
}else{
event.returnValue = false;
return false;
}
}
//单击时文本框变成文本
document.onclick = function(){
if(event.srcElement.parentNode == activeItem || event.srcElement == activeItem)
return;
else
changeToText(activeItem);
}
</script>
</head>
<body>
<input type="button" onclick="addRow()" value="插入一行" />
<table id="myTable" border="0" cellpadding="0" cellspacing="1">
<tr><th>编号</th><th>姓名</th><th>操作</th></tr>
</table>
</body>
</html>
- JS动态删除表格行
- js动态添加删除表格行
- js动态添加删除表格行
- JS动态给表格添加/删除 行
- JS 动态添加、删除表格的行
- js动态创建,删除表格
- JS动态添加删除表格
- js动态添加删除表格
- js动态创建、删除表格
- JS实现动态表格 添加行 删除行 删除列
- js动态生成表格,删除表格
- js动态生成表格、动态删除一行
- js创建表格动态增加行并删除行
- 动态添加删除表格行的js脚本
- js动态的添加删除表格的行和列
- js实现动态添加,删除行,onkeyup表格求和
- js实现动态删除表格的行或者列-------Day57
- 动态插入、添加删除表格行的JS代码
- 经典Java面试题(搞笑)
- 如何删除windows服务
- AES-原理
- 开源数据库 Sharding 技术 (Share Nothing)
- BSD net源码分析(2-2)
- JS动态删除表格行
- AES-C代码实现
- 代码之美 - 28漂亮的调试
- Oracle分页查询的三种方法
- Test/Test2/Test3/Test4(内存问题)
- exit()函数详解与Exit() 和 Return() 的区别
- First
- 可行性研究报告
- 流量是这样提高的!!!