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 相关文章推荐
图片上传即时显示缩略图的js代码
May 27 Javascript
Javascript 调试利器 Firebug使用详解六
Jul 05 Javascript
jquery win 7透明弹出层效果的简单代码
Aug 06 Javascript
Egret引擎开发指南之编译项目
Sep 03 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
Mar 24 Javascript
Javascript实现检测客户端类型代码封包
Dec 03 Javascript
js 点击a标签 获取a的自定义属性方法
Nov 21 Javascript
Jquery 整理元素选取、常用方法一览表
Nov 26 Javascript
浅谈Javascript常用正则表达式应用
Mar 08 Javascript
JavaScript面试技巧之数组的一些不low操作
Mar 22 Javascript
JS中封装axios来管控api的2种方式
Sep 11 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
Jul 15 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
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
PDO::commit讲解
2019/01/27 PHP
php生成word并下载代码实例
2019/03/15 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
loading动画特效小结
2017/01/22 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
python将图片文件转换成base64编码的方法
2015/03/14 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
django用户登录和注销的实现方法
2018/07/16 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
Django实现发送邮件功能
2019/07/18 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
Ajax和javascript的区别
2013/07/20 面试题
大学生入党自我鉴定
2013/10/31 职场文书
电子商务专业个人的自我评价
2013/11/19 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
学生会副主席竞聘书
2014/03/31 职场文书
优秀党支部申报材料
2014/12/24 职场文书
尊师重教主题班会
2015/08/14 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
详解php中流行的rpc框架
2021/05/29 PHP