如何通过JAVASCRIPT实现当点击相应的单元格,该单元格内文本变成可编辑的INPUT或SELECT,离开单元格后又单元格内文本为修改后文本。我通过以下方法来实现点击单元格变成INPUT,可不知该在点其它单元格后恢复文本状态和如何返回INPUT后修改的值。是否有更好的方法来实现该效果。 window.attachEvent("onload", getTable); function getTable(){ for(i=0; i<tbl.cells.length; i++){ var cell = tbl.cells[i]; cell.attachEvent("onmousedown", getTexttoInput); } } getTexttoInput = function(evt){ var input; var html evt = (evt) ? evt : ((window.event) ? window.event : "") if (evt) { var cell = (evt.target) ? evt.target : evt.srcElement; for(i=0; i<tbl.cells.length; i++){ if(tbl.cells[i] == cell){ html = '<input type="text" value="' + tbl.cells[i].innerText + '" style="width:100%">' tbl.cells[i].innerHTML = html; } } } } 123 456 abc efg [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 2、 window.attachEvent("onload", getTable); function getTable(){ for(i=0; i<tbl.cells.length; i++){ var cell = tbl.cells[i]; cell.attachEvent("onmousedown", getTexttoInput); } } getTexttoInput = function(evt){ var input; var html evt = (evt) ? evt : ((window.event) ? window.event : "") if (evt) { var cell = (evt.target) ? evt.target : evt.srcElement; for(i=0; i<tbl.cells.length; i++){ if(tbl.cells[i] == cell){ html = '<input type="text" id="input'+i+'" value="' + tbl.cells[i].innerText + '" style="width:100%" onblur="this.parentNode.innerHTML=this.value;" onkeydown="if(window.event.keyCode==13){this.parentNode.innerHTML=this.value;}">' tbl.cells[i].innerHTML = html; window.setTimeout('document.getElementById("input'+i+'").focus();',300); } } } } 123 456 abc efg [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]