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操纵跨frame的三级联动select下拉选项实例介绍
May 19 Javascript
jquery基础教程之deferred对象使用方法
Jan 22 Javascript
jquery.cookie实现的客户端购物车操作实例
Dec 24 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
Jan 08 Javascript
js清除浏览器缓存的几种方法
Mar 15 Javascript
详解webpack分离css单独打包
Jun 21 Javascript
Vue.js数据绑定之data属性
Jul 07 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
Aug 30 Javascript
使用typescript开发angular模块并发布npm包
Apr 19 Javascript
浅谈webpack 构建性能优化策略小结
Jun 13 Javascript
怎样在vue项目下添加ESLint的方法
May 16 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 文章中的远程图片采集到本地的代码
2009/07/30 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
PHP中文编码小技巧
2014/12/25 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
vue配置文件实现代理v2版本的方法
2019/06/21 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
python之yield表达式学习
2014/09/02 Python
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
基于python 字符编码的理解
2017/09/02 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Python中的四种交换数值的方法解析
2019/11/18 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
授权委托书(公民个人适用)
2014/09/19 职场文书
公务员年度考核评语
2014/12/31 职场文书
基层党支部承诺书
2015/04/30 职场文书
病假条格式范文
2015/08/17 职场文书
TV动画《间谍过家家》公开PV
2022/03/20 日漫
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android