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