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 相关文章推荐
javascript 手动给表增加数据的小例子
Jul 10 Javascript
JavaScript实现页面实时显示当前时间的简单实例
Jul 20 Javascript
关于js数组去重的问题小结
Jan 24 Javascript
javascript定义变量时加var与不加var的区别
Dec 22 Javascript
js实现的倒计时按钮实例
Jun 24 Javascript
JS模拟Dialog弹出浮动框效果代码
Oct 16 Javascript
jQuery实现简单的文件上传进度条效果
Mar 26 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
Dec 18 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
Mar 02 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
Mar 09 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
Sep 30 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 jQuery
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
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
php图像处理类实例
2015/07/28 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
(function(){})()的用法与优点
2007/03/11 Javascript
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
详解JS面向对象编程
2016/01/24 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
使用Python实现简单的服务器功能
2017/08/25 Python
名片管理系统python版
2018/01/11 Python
python删除文本中行数标签的方法
2018/05/31 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
python实现IOU计算案例
2020/04/12 Python
怎么快速自学python
2020/06/22 Python
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
2015年科协工作总结
2015/05/19 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技