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中的toFixed固定小数位数 简单实例分享
Jul 12 Javascript
js控制table合并具体实现
Feb 20 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
May 08 Javascript
实例分析javascript中的call()和apply()方法
Nov 28 Javascript
node.js中的forEach()是同步还是异步呢
Jan 29 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
Oct 16 Javascript
跟我学习javascript的函数和函数表达式
Nov 16 Javascript
Bootstrap每天必学之响应式导航、轮播图
Apr 25 Javascript
jQuery插件ajaxfileupload.js实现上传文件
Oct 23 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 jQuery
java实现单链表增删改查的实例代码详解
Aug 30 Javascript
js实现数字从零慢慢增加到指定数字示例
Nov 07 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
Zend公司全球首推PHP认证
2006/10/09 PHP
在Windows版的PHP中使用ADO
2006/10/09 PHP
一个MYSQL操作类
2006/11/16 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
php实现的生成排列算法示例
2019/07/25 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
python提取页面内url列表的方法
2015/05/25 Python
python并发2之使用asyncio处理并发
2017/12/21 Python
Python程序运行原理图文解析
2018/02/10 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
基于python实现地址和经纬度转换
2020/05/19 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
九年级家长会邀请函
2014/01/15 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
2014植树节活动总结
2014/03/11 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
给学校的建议书400字
2015/09/14 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python