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 相关文章推荐
捕获关闭窗口的脚本
Jan 10 Javascript
让新消息在网页标题闪烁提示的jQuery代码
Nov 04 Javascript
浅析javascript中function 的 length 属性
May 27 Javascript
学习JavaScript设计模式(策略模式)
Nov 26 Javascript
JavaScript错误处理和堆栈追踪详解
Apr 18 Javascript
Node 搭建一个静态资源服务器的实现
May 20 Javascript
vue动态注册组件实例代码详解
May 30 Javascript
微信小程序 确认框的实现(附代码)
Jul 23 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
Jul 09 Javascript
如何利用javascript接收json信息并进行处理
Aug 06 Javascript
javascript实现电商放大镜效果
Nov 23 Javascript
关于Js中new操作符的作用详解
Feb 21 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中基于ts与nts版本- vc6和vc9编译版本的区别详解
2013/04/26 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
Vue shopCart 组件开发详解
2018/01/26 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
Python下singleton模式的实现方法
2014/07/16 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
Python探索之修改Python搜索路径
2017/10/25 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
使用Python在Windows下获取USB PID&amp;VID的方法
2019/07/02 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
python画图常规设置方式
2020/03/05 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
keras多显卡训练方式
2020/06/10 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
经销商会议欢迎词
2014/01/11 职场文书
学历公证书范本
2014/04/09 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
酒店管理求职信
2014/06/09 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
2015年中秋晚会主持词
2015/07/01 职场文书
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS