跟这个没有关系的
是因为你使用document.writeln后,所有方法和事件都失效了

解决方案 »

  1.   

    但是我用document.write就没有办法带变量了,有没有其他方式可以实现
      

  2.   

    晕,不是这个的问题啊我说得很清楚了,使用document.writeln后,所有方法和事件都失效了如果想赋值以后动作还有效,请用innerHTML来赋值
      

  3.   

    <script>
    window.onload=function(){
    var id=document.getElementById("div1");
    str="<table>"
    for(var i=1;i<=10;i++){
    str+="<td align='center' rowspan="+i+"> <input type='button' onClick='editClick("+i+")' value='Edit'> </td>"
    }
    str="</table>"
    id.innerHTML=str;
    }
    </script><div id="div1"></div>
      

  4.   

    innerHTML怎样实现啊,谢谢,初学者!
      

  5.   

    是呀,document.writeln把页面的内容给覆盖了。
    所以你找不到editClick这个方法了。
    像楼上说的那样在innerHTML里面写吧。
    另外,最好写到div或者其它的容器中,
    避免对其它对象产生影响。
      

  6.   

    我这样试了下,怎么什么也没有显示:
    <html> 
    <head> 
    <script>
    window.onload=function(){
    var id=document.getElementById("div1");
    str="<table>"
    for(var i=1;i<=10;i++){
    str+="<td align='center' rowspan="+i+"> <input type='button' onClick='editClick("+i+")' value='Edit'> </td>"
    }
    str="</table>"
    id.innerHTML=str;
    }
    </script>
    </head> 
    <body> 
    <div id="div1"></div>
    </body> 
    </html> 
      

  7.   

    <html> 
    <head> 
    <script> 
    window.onload=function(){ 
    var id=document.getElementById("div1"); 
    str=" <table>" 
    str+=" <tr>" 
    for(var i=1;i <=10;i++){ 
    str+=" <td align='center' rowspan="+i+"> <input type='button' onClick='editClick("+i+")' value='Edit'> </td>" 

    str+=" </tr>" 
    str+=" </table>" 
    id.innerHTML=str; 

    </script> 
    </head> 
    <body> 
    <div id="div1"> </div> 
    </body> 
    </html> 
    我写的时候写漏了tr啊
      

  8.   

    将上面的代码放在下面的脚本中,通过   <body onLoad='frmLoad()'> 不能显示'Edit'按钮,原因是什么?
    function frmLoad()
    {
    with ( document.forms[0] )
    {
    if( enbl == '1')
    sambaenbl[0].checked = true;
    else if( enbl == '0')
    sambaenbl[1].checked = true; setSelect(smbMode,mode);
    sambapath.value = smbpath;
    sambagroup.value = smbgroup;
    sambaname.value = smbname;
    var id=document.getElementById("div1"); 
    str=" <table>" 
    str+=" <tr>" 
    for(var i=1;i <=10;i++)

    str+=" <td align='center' rowspan="+i+"> <input type='button' onClick='editClick("+i+")' value='Edit'> </td>" 

    str+=" </tr>" 
    str+=" </table>" 
    id.innerHTML=str; 
    }
    }
      

  9.   

    难道必须使用window.onload才能实现....
      

  10.   

    chinmo:请教下:    用innerHTML每次是重新覆盖插入内容,怎样不覆盖而在原有的基础上追加?
        谢谢!
      

  11.   

    你把id.innerHTML=str;改为id.innerHTML+=str;
      

  12.   

    chinmo:
        通过id.innerHTML=str输出,但是我想输出的是列表中的一行,通过alert(str);发现str值正确,但没有显示。
         谢谢!
           <table border='1' cellpadding='4' cellspacing='0'>
              <tr>
                <td class='hd'>Share Folder</td>
                <td class='hd'>Remove</td>
                <td class='hd'>Username</td>
                <td class='hd'>Access Right</td>           
              </tr>
              <div>
              </div>
           </table>