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 去字符串空格终极版(支持utf8)
Nov 14 Javascript
详解AngularJS中的表格使用
Jun 16 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
Nov 07 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
Dec 14 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
Feb 26 Javascript
vue this.reload 方法 配置
Sep 12 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
浅谈layui 数据表格前后台传值的问题
Sep 12 Javascript
使用Promise封装小程序wx.request的实现方法
Nov 13 Javascript
Vue数组响应式操作及高阶函数使用代码详解
Aug 01 Javascript
基于JQuery和DWR实现异步数据传递
Oct 16 jQuery
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注入实例
2006/10/09 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
php的dl函数用法实例
2014/11/06 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
Python3处理HTTP请求的实例
2018/05/10 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
python将字符串转换成json的方法小结
2019/07/09 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
python如何求圆的面积
2020/07/01 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
雅虎笔试题(字符串操作)
2015/03/24 面试题
财务助理岗位职责
2013/11/10 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
股东授权委托书范本
2014/09/13 职场文书
大学生赌博检讨书
2014/09/22 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
单位推荐信范文
2015/03/27 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
python+opencv实现目标跟踪过程
2022/06/21 Python
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android