js修改table中Td的值(定义td的双击事件)


Posted in Javascript onJanuary 10, 2013

客户需求至上。
这次是更改后的代码,去掉了“确定”,“取消”按钮。变单击为双击事件,用户按ESC键,取消更改。

//为每个Td添加双击事件 
function ReWritable() 
{ 
var tbmian=document.getElementById("tbmain"); 
//循环,为每行每列添加双击事件,但是,第一行(thead)与最后一行(tfoot)不添加。 
for(var i=1;i<tbmain.rows.length-1;i++) 
{ 
for(var j=0;j<tbmain.rows[i].cells.length;j++) 
{ 
tbmain.rows[i].cells[j].ondblclick=TdDoubleClick; 
} 
} 
} 
//定义td的双击事件,为其添加文本框,使用用户可以输入。 
function TdDoubleClick() 
{ 
//首先判断是不是该方格已经存在文本框,如果存在,则返回,不重复添加文本框。如果不存在,则添加。 
var tdcag=document.getElementById("tdcag"); 
var tdid=null; 
var txtid=null; 
var curtd=window.event.srcElement; 
if(tdcag!=null)//已经存在,返回。 
{ 
return; 
} 
//不存在,则添加 
tdid=window.event.srcElement; 
tdtxt=tdid.innerText; 
tdtxt=Trim(tdtxt); 
var str="<div id='tdcag'><input type='text' onblur='ChangeTdText();' id='txtId' value='"+tdtxt+"'>"; 
str+="<input type='hidden' id='tdInitValue' value='"+tdtxt+"'>"; 
str+="</div>"; 
tdid.innerHTML=str; 
//使文本框获得焦点。 
document.getElementById("txtId").focus(); 
var ctr=document.getElementById("txtId").createTextRange(); 
ctr.collapse(false); 
ctr.select(); 
} 
//去除字符串前后的空格。 
function Trim(str) 
{ 
return str.replace(/(^\s*)|(\s*$)/g, ""); 
} 
//定义KeyPress按下时的事件,如果是ESC键,则取消更改,恢复为更改前的值。 
document.onkeypress = function EscKeyPress() 
{ 
if(event.keyCode==27) 
{ 
CancelTdChanged(); 
return; 
} 
} 
//取消更改, 
function CancelTdChanged() 
{ 
var tdInitValue=document.getElementById("tdInitValue"); 
var tdtxt=tdInitValue.value; 
var tdid=document.getElementById("tdcag").parentNode; 
tdid.innerText=Trim(tdtxt); 
} 
//确定更改, 
function ChangeTdText() 
{ 
var txtId=document.getElementById("txtId"); 
if(txtId==null) 
{ 
return; 
} 
var tdid=document.getElementById("tdcag").parentNode; 
tdid.innerText=Trim(txtId.value); 
return; 
}

其它代码,与以前相同。只是取消了对表的Thead与Tfoot的更改。
<body onload="ReWritable();"> 
<table id="tbmain" style="width:100%;" border="1"> 
<thead> 
<tr> 
<td>thead,thead,thead</td> 
</tr> 
</thead> 
<tfoot> 
<tr> 
<td> 
tfoot,tfoot,tfoot 
</td> 
</tr> 
</tfoot> 
<tr> 
<td>11 
</td> 
<td>12 
</td> 
<td>13</td> 
</tr> 
<tr> 
<td>21 
</td> 
<td>22 
</td> 
<td>23 
</td> 
</tr> 
<tr> 
<td>31 
</td> 
<td>32 
</td> 
<td>33 
</td> 
</tr> 
</table> 
</body>
Javascript 相关文章推荐
Document 对象的常用方法
Jul 31 Javascript
jquery弹出框的用法示例(2)
Aug 26 Javascript
jquery 扑捉回车键事件代码
Apr 24 Javascript
js实现精美的图片跟随鼠标效果实例
May 16 Javascript
javascript实现dom元素可拖动
Mar 21 Javascript
基于vue实现swipe轮播组件实例代码
May 24 Javascript
js随机生成一个验证码
Jun 01 Javascript
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
微信小程序进入广告实现代码实例
Sep 19 Javascript
微信小程序(订阅消息)功能
Oct 25 Javascript
JavaScript 语句之常用 for 循环详解
Mar 29 Javascript
js 实现Material UI点击涟漪效果示例
Sep 23 Javascript
javascript之Partial Application学习
Jan 10 #Javascript
javascript之典型高阶函数应用介绍二
Jan 10 #Javascript
javascript之典型高阶函数应用介绍
Jan 10 #Javascript
根据json字符串生成Html的一种方式
Jan 09 #Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 #Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
Jan 09 #Javascript
实现web打印的各种方法介绍及实现代码
Jan 09 #Javascript
You might like
php设计模式 Observer(观察者模式)
2011/06/26 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
php微信开发自定义菜单
2016/08/27 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
Java语言程序设计测试题选择题部分
2014/04/03 面试题
历史专业毕业生的自我鉴定
2013/11/15 职场文书
医院实习介绍信
2014/01/12 职场文书
考试不及格的检讨书
2014/01/22 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
校庆标语集锦
2014/06/25 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
Redis读写分离搭建的完整步骤
2021/09/14 Redis
python manim实现排序算法动画示例
2022/08/14 Python