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 中字符串连接的性能的一些问题
May 07 Javascript
js动态创建及移除div的方法
Jun 03 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
Sep 06 Javascript
jquery+php实现滚动的数字特效
Nov 29 Javascript
javascript中的作用域和闭包详解
Jan 13 Javascript
JavaScript用构造函数如何获取变量的类型名
Dec 23 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
Apr 11 Javascript
vue中引用阿里字体图标的方法
Feb 10 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
Apr 27 Javascript
Vue.use源码学习小结
Jun 20 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
Oct 20 Javascript
Bootstrap Paginator+PageHelper实现分页效果
Dec 29 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中array_merge与array+array的区别
2013/06/21 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
如何使用jquery easyui创建标签组件
2015/11/18 Javascript
基于node实现websocket协议
2016/04/25 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python fileinput模块使用实例
2015/06/03 Python
python中map()函数的使用方法示例
2017/09/29 Python
python机器学习库常用汇总
2017/11/15 Python
Python实现识别手写数字大纲
2018/01/29 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
Python关于反射的实例代码分享
2020/02/20 Python
python db类用法说明
2020/07/07 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
两则小学生的自我评价分享
2013/11/14 职场文书
大学生自我鉴定范文
2013/12/28 职场文书
最新大学职业规划书范文
2013/12/30 职场文书
给女朋友的道歉信
2014/01/10 职场文书
教师队伍管理制度
2014/01/14 职场文书
秘书英文求职信范文
2014/01/31 职场文书
小学数学课题方案
2014/06/15 职场文书
加强作风建设工作总结
2014/10/23 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL