table中innerHTML

<table id="aa">

  <tbody>

    <tr>

      <td>单元格一</td><td>单元格二</td>

    </tr>

     </tbody>

</table>

如果我想把aa表格中的<tr><td>单元格一</td><td>单元格二</td></tr>换成<tr><td>单元格三</td><td>单元格四</td></tr>

第一个反应:document.getElementById('aa').tBodies[0].innerHTML = '<tr><td>单元格三</td><td>单元格四</td></tr>'

一个很不幸的消息就是在IE中会报错“未知的运行错误”,查原因....

原因:在IE中,表格的innerHTML是只读的,不能写

所以:var aa = document.getElementById('aa'),tbody = aa.tBodies[0],temp = document.createElement('div')
        temp.innerHTML  = "<table><tbody><tr><td>单元格三</td><td>单元格四</td></tr></tbody></table>";
        aa.replaceChild(temp.firstChild.tbodies[0], tbody);

还有一点值得注意的是:aa.replaceChild(temp.firstChild.tbodies[0], tbody)这行中,表格的操作必须tbody元素,如果直接操作tr就会报错,例下面:

var aa = document.getElementById('aa'),tr = aa.rows[0],temp = document.createElement('div')
        temp.innerHTML  = "<table><tbody><tr><td>单元格三</td><td> 单元格四</td></tr></tbody></table>";
        aa.replaceChild(temp.firstChild.rows[0], tr);

你可能感兴趣的:(innerHTML)