input包含在td里,也会触发onclick
所以代码应该是这样的<table><tr><td onclick="this.innerHTML='<input>';this.onclick='';">点我</td></tr></table>

解决方案 »

  1.   

    谢谢一楼的,对我的目的来说,这样写之后,td只能点一次,第二次点击之后就不显示了。
    因为我如果点击除td以后的元素的话,它会隐藏td里面的内容。当我再次点击td它的事件函数就清除了,还是达不到效果。我也测试了的..
      

  2.   

    那就分开两个吧,估计是要把输入的结果也要保存起来的
    一个显示"点我"  一个显示输入框 这样 会清晰些
    <table><tr><td onclick="this.nextSibling.style.display = '';this.style.display='none';">
    点我
    </td>
    <td style="display:none"><input type="text"  onblur="this.parentElement.previousSibling.style.display='';this.parentElement.style.display='none';"/></td>
    </tr></table>
      

  3.   

    <table><tr><td onclick="if(this.childNodes[0].tagName!='INPUT'){this.innerHTML='<input>';}">点我</td></tr></table>