line 263:
--------------------
tt.type="button";
tt.value="取消编辑";
tt.onclick=cancelEdit;
... ...createElement之后,type属性只读(IE5之前)
另建议用insertRow()和insertCell()来插入新行和新列试试

解决方案 »

  1.   

    createElement之后 type属性还是可以修改的,但是appendChild以后就不能修改了。
    把t.appendChild(tt);移到后面就行了
      

  2.   

    参考以下代码(摘自MSDN---createElement Method),应该可以解决你的问题:function createRadioButton(){
        // Create radio button object with value="First Choice" and then insert 
        // this element into the document hierarchy.
        var newRadioButton = document.createElement("<INPUT TYPE='RADIO' NAME='RADIOTEST' VALUE='First Choice'>")
        document.body.insertBefore(newRadioButton);
        // Create radio button object with value="Second Choice" and then insert 
        // this element into the document hierarchy. 
        newRadioButton = document.createElement("<INPUT TYPE='RADIO' NAME='RADIOTEST' VALUE='Second Choice'>")
        document.body.insertBefore(newRadioButton);
    }
      

  3.   

    to  cxz7531(大花猫) :
    好像不行,在IE下点了插入没反应;
    在firefox下,点取消编辑会出现异常
      

  4.   

    to: cds27(冰封)
    也不行,点插入没反应
    <form action="?action=savebbb" method="post" style="text-align:center">
    <fieldset>
    <legend>管理员管理</legend>
    <table id="bbb" style="margin:auto">
    <tr>
    <th>select</th>
    <th>name</th>
    <th>value</th>
    <th>edit</th>
    </tr>
    <tr>
    <td><input type="checkbox" /></td>
    <td>n1</td>
    <td>v1</td>
    <td><input type="button" class="wsc_edit" /></td>
    </tr>
    <tr>
    <td><input type="checkbox" /></td>
    <td>n2</td>
    <td>v2</td>
    <td><input type="button" class="wsc_edit" /></td>
    </tr>
    </table>
    <input type="button" id="bbb_selectAll" value="全选" />
    <input type="button" id="bbb_selectReverse" value="反选" />
    <input type="button" id="bbb_delete" value="删除" />
    <input type="button" id="bbb_cancelDelete" value="取消删除" />
    <input type="button" id="bbb_insert" value="插入" />
    <hr />
    <input type="submit" id="bbb_submit" value="提交修改" />
    <input type="button" value="放弃修改" onclick="window.location.reload();" />
    </fieldset>
    </form>
    <script type="text/javascript">
    wsc_tableEdit(1,"bbb");
    function wsc_tableEdit(nkeyColumn, tableId)
    {
    var keyColumn=nkeyColumn;
    var tb=document.getElementById(tableId);
    var fm=tb.parentNode;
    var editingValues;
    var editedRows;
    var deletedRows=new Array();
    var editingRow; function selectAll()
    {
    var t=tb.getElementsByTagName("input");
    var cbs=new Array();
    for(var i=0; i<t.length; i++)
    {
    if(t[i].type=="checkbox")
    {
    t[i].selected=false;
    cbs[cbs.length]=t[i];
    }
    }
    t=null;
    for(i=0; i<cbs.length; i++)
    cbs[i].checked=true;
    return false;
    } function selectReverse()
    {
    var t=tb.getElementsByTagName("input");
    var cbs=new Array();
    for(var i=0; i<t.length; i++)
    {
    if(t[i].type=="checkbox")
    {
    cbs[cbs.length]=t[i];
    }
    }
    t=null;
    for(i=0; i<cbs.length; i++)
    {
    if(cbs[i].checked)
    cbs[i].checked=false;
    else
    cbs[i].checked=true;
    }
    return false;
    } function adelete()
    {
    var t=tb.getElementsByTagName("input");
    var cbs=new Array();
    for(var i=0; i<t.length; i++)
    {
    if(t[i].type=="checkbox")
    {
    //t[i].selected=false;
    cbs[cbs.length]=t[i];
    }
    }
    t=null;
    for(i=0; i<cbs.length; i++)
    if(cbs[i].checked)
    {
    var row=cbs[i].parentNode.parentNode;
    var tds=row.getElementsByTagName("td");
    row.style.display="none";
    deletedRows.push(row);
    }
    return false;
    } function beginEdit()
    {
    endEdit();
    editedRows=new Array();
    editingValues=new Array();
    var row=this.parentNode.parentNode;
    editingRow=row;
    var tds=row.getElementsByTagName("td");
    clearChilds(tds[0]);
    var t=document.createElement("input");
    t.value="取消编辑";
    t.type="button";
    t.onclick=cancelEdit;
    tds[0].appendChild(t);
    for(var i=1; i<tds.length-1; i++)
    {
    var s=tds[i].childNodes[0].nodeValue;
    clearChilds(tds[i]);
    t=document.createElement("input");
    t.type="text";
    t.value=s;
    tds[i].appendChild(t);
    editingValues.push(s);
    }
    this.value="确定编辑";
    this.onclick=endEdit;
    } function cancelEdit()
    {
    var row=editingRow;
    if(!row)
    return;
    var tds=row.getElementsByTagName("td");
    clearChilds(tds[0]);
    t=document.createElement("input");
    t.type="checkbox";
    t.checked=false;
    tds[0].appendChild(t);
    for(i=1; i<tds.length-1; i++)
    {
    var s=editingValues[i-1];
    clearChilds(tds[i]);
    t=document.createTextNode(s);
    tds[i].appendChild(t);
    }
    tds[tds.length-1].childNodes[0].value="编辑";
    tds[tds.length-1].childNodes[0].onclick=beginEdit;
    editingRow=null;
    } function endEdit()
    {
    var row=editingRow;
    if(!row)
    return;
    var tds=row.getElementsByTagName("td");
    clearChilds(tds[0]);
    t=document.createElement("input");
    t.type="checkbox";
    t.checked=false;
    tds[0].appendChild(t);
    for(i=1; i<tds.length-1; i++)
    {
    var s=tds[i].childNodes[0].value;
    clearChilds(tds[i]);
    t=document.createTextNode(s);
    tds[i].appendChild(t);
    }
    editedRows.push(row);
    tds[tds.length-1].childNodes[0].value="编辑";
    tds[tds.length-1].childNodes[0].onclick=beginEdit;
    editingRow=null;
    } function clearChilds(node)
    {
    var n=node.childNodes.length;
    for(var i=n-1; i>=0; i--)
    node.removeChild(node.childNodes[i]);
    } function beforeSubmit()
    {
    endEdit(); var t=document.createElement("input");
    t.type="hidden";
    t.name=tableId +"_deletedRows"; if(deletedRows &&deletedRows.length)
    for(var i=0; i<deletedRows.length; i++)
    {
    var row=deletedRows[i];
    var tds=row.getElementsByTagName("td");
    t.value+=tds[keyColumn].childNodes[0].nodeValue+",";
    if(editedRows &&editedRows.length)
    for(var j=0; j<editedRows.length; j++)
    {
    if(editedRows[i]==row)
    {
    alert(i);
    editedRows.splice(i,1);
    }
    }
    }
    fm.appendChild(t); if(editedRows &&editedRows.length)
    for(i=0; i<editedRows.length; i++)
    {
    row=editedRows[i];
    tds=row.getElementsByTagName("td");
    for(j=1; j<tds.length-1; j++)
    {
    t=document.createElement("input");
    t.type="hidden";
    t.name=tableId +"_" +i +"_" +j;
    t.value=tds[j].childNodes[0].nodeValue;
    fm.appendChild(t);
    }
    }
    var inputs=fm.getElementsByTagName("input");
    for(i=0; i<inputs.length; i++)
    inputs[i].disabled=true;
    return false;
    } function cancelDelete()
    {
    for(var i=0; i<deletedRows.length; i++)
    {
    if(document.all)
    deletedRows[i].style.display="block";
    else
    deletedRows[i].style.display="table-row";
    }
    deletedRows=new Array();
    } function insert()
    {
    var row=tb.getElementsByTagName("tr")[0];
    var n=row.getElementsByTagName("th").length;
    row=document.createElement("tr");
    for(var i=0; i<n; i++)
    {
    var t=document.createElement("td");
    var tt;
    if(i==0)
    {
    tt=document.createElement("<input type='button' value='cancel' onclick='cancelEdit' />");
    // tt.type="button";
    // tt.value="取消编辑";
    // tt.onclick=cancelEdit;
    }
    else if(i==n-1)
    {
    tt=document.createElement("<input type='button' value='cancel' onclick='endEdit' />");
    // tt.type="button";
    // tt.value="确认编辑";
    // tt.onclick=endEdit;
    }
    else
    {
    tt=document.createElement("<input type='text' />");
    // tt.type="text";
    }
    t.appendChild(tt);
    row.appendChild(t);
    }
    tb.appendChild(row);
    } var t=fm.getElementsByTagName("input");
    for(var i=0; i<t.length; i++)
    {
    if(t[i].className=="wsc_edit")
    {
    t[i].value="编辑";
    t[i].onclick=beginEdit;
    }
    }   document.getElementById(tableId+ "_selectAll").onclick= selectAll;
      document.getElementById(tableId+ "_delete").onclick= adelete;
      document.getElementById(tableId+ "_selectReverse").onclick= selectReverse;
      document.getElementById(tableId+ "_cancelDelete").onclick= cancelDelete;
      document.getElementById(tableId+ "_insert").onclick= insert;
      fm.onsubmit= beforeSubmit;
    }
    </script>
      

  5.   

    function insert()
    {
        var insertrow = tb.rows.length;
                tb.insertRow(insertrow);
                tb.rows(insertrow).insertCell();
                tb.rows(insertrow).insertCell();
                tb.rows(insertrow).insertCell();
                tb.rows(insertrow).insertCell();
                tb.rows(insertrow).cells(0).innerHTML =
                '<td><input type="checkbox" /></td>';
                tb.rows(insertrow).cells(1).innerHTML =
                '<td>n1</td>';
                tb.rows(insertrow).cells(2).innerHTML =
                '<td>v1</td>';
                tb.rows(insertrow).cells(3).innerHTML =
                '<td><input type="button" class="wsc_edit" /></td>'; // 这个自己该吧。
    var t=fm.getElementsByTagName("input");
    for(var i=0; i<t.length; i++)
    {
    if(t[i].className=="wsc_edit")
    {
    t[i].value="编辑";
    t[i].onclick=beginEdit;
    }
    }

    /*
    var row=tb.getElementsByTagName("tr")[0];
    var n=row.getElementsByTagName("th").length;
    row=document.createElement("tr");
    for(var i=0; i<n; i++)
    {
    var t=document.createElement("td");
    var tt;
    if(i==0)
    {
    tt=document.createElement("<input type='button' value='cancel' onclick='cancelEdit' />");
    // tt.type="button";
    // tt.value="取消编辑";
    // tt.onclick=cancelEdit;
    }
    else if(i==n-1)
    {
    tt=document.createElement("<input type='button' value='cancel' onclick='endEdit' />");
    // tt.type="button";
    // tt.value="确认编辑";
    // tt.onclick=endEdit;
    }
    else
    {
    tt=document.createElement("<input type='text' />");
    // tt.type="text";
    }
    t.appendChild(tt);
    row.appendChild(t);
    }
    tb.appendChild(row);
    */
    }