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 相关文章推荐
ExtJS 2.0实用简明教程 之Ext类库简介
Apr 29 Javascript
js获取元素在浏览器中的绝对位置
Jul 24 Javascript
js实现全屏漂浮广告移入光标停止移动
Dec 02 Javascript
jQuery aminate方法定位到页面具体位置
Dec 26 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
Mar 28 Javascript
基于Vue.js实现简单搜索框
Mar 26 Javascript
激动人心的 Angular HttpClient的源码解析
Jul 10 Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
Feb 11 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
Sep 01 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 Javascript
JavaScript代码简化技巧实例解析
Sep 09 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+mysql保存和输出文件
2006/10/09 PHP
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
pip安装时ReadTimeoutError的解决方法
2018/06/12 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
python将字符串转换成json的方法小结
2019/07/09 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
学python安装的软件总结
2019/10/12 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
暇步士官网:Hush Puppies
2016/09/22 全球购物
类和结构的区别
2012/08/15 面试题
生日宴会答谢词
2014/01/09 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
公证委托书格式
2014/09/13 职场文书
诉讼授权委托书
2014/10/15 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
关于迟到的检讨书
2015/05/06 职场文书
小学运动会前导词
2015/07/20 职场文书
Python趣味挑战之实现简易版音乐播放器
2021/05/28 Python
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android
SSM VUE Axios详解
2021/10/05 Vue.js
Python3的进程和线程你了解吗
2022/03/16 Python
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python