作家
登录

js修改table中Td的值(定义td的双击事件)

作者: 来源:www.28hudong.com 2013-03-30 00:13:28 阅读 我要评论

客户需求至上。 这次是更改后的代码,去掉了“确定”,“取消”按钮。变单击为双击事件,用户按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>

  推荐阅读

  关于全局变量和局部变量的那些事

变量对于学习js,学习编程语言的同学在熟悉不过了,在这里就不在阐述官方的定义了,网上太多了,今天我们就从生活中来理解他 1.什么是变量? 比如: 一个水杯里面装了水,这个水杯就是变量; 一瓶啤酒,这个啤酒瓶>>>详细阅读


本文标题:js修改table中Td的值(定义td的双击事件)

地址:http://www.17bianji.com/kaifa2/JS/22545.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)