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 相关文章推荐
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
Mar 10 Javascript
javascript中的注释使用与注意事项小结
Sep 20 Javascript
js调用后台、后台调用前台等方法总结
Apr 17 Javascript
JQuery中Text方法用法实例分析
May 18 Javascript
jquery实现具有嵌套功能的选项卡
Feb 12 Javascript
javascript 数组的正态分布排序的问题
Jul 31 Javascript
node.js实现回调的方法示例
Mar 01 Javascript
angular+bootstrap的双向数据绑定实例
Mar 03 Javascript
jquery中each循环的简单回滚操作
May 05 jQuery
js实现鼠标拖拽div左右滑动
Jan 15 Javascript
详解ES6 扩展运算符的使用与注意事项
Nov 12 Javascript
js重写alert事件(避免alert弹框标题出现网址)
Dec 04 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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
PHP 作用域解析运算符(::)
2010/07/27 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
php把大写命名转换成下划线分割命名
2015/04/27 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
2016/03/29 PHP
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
JS二维数组的定义说明
2014/03/03 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
详解A标签中href=&quot;&quot;的几种用法
2017/08/20 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
跟老齐学Python之一个免费的实验室
2014/09/14 Python
Python利用ansible分发处理任务
2015/08/04 Python
Python+django实现简单的文件上传
2016/08/17 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
python Kmeans算法原理深入解析
2019/08/23 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
python实现处理mysql结果输出方式
2020/04/09 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
法学个人求职信范文
2014/01/27 职场文书
主题婚礼策划方案
2014/02/10 职场文书
协议书范文
2015/01/27 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
golang在GRPC中设置client的超时时间
2021/04/27 Golang
MySQL多表查询机制
2022/03/17 MySQL