Javascript 为什么IE会在这条线上出错?

Javascript 为什么IE会在这条线上出错?,javascript,internet-explorer,html-table,innerhtml,Javascript,Internet Explorer,Html Table,Innerhtml,以下代码在Firefox中运行正常,但IE抛出了一个错误: 第41行,字符:3出现未接受的运行时错误 为什么IE不能处理这个代码?我需要做什么来修复它 <script> function addComparison() { var tableTR = document.getElementById('comparisons'); if(tableTR!=null) { var td2Add = "<td id='comp_2' va

以下代码在Firefox中运行正常,但IE抛出了一个错误:

第41行,字符:3出现未接受的运行时错误

为什么IE不能处理这个代码?我需要做什么来修复它

 <script>
 function addComparison()
 {
    var tableTR = document.getElementById('comparisons');
    if(tableTR!=null)
    {
        var td2Add = "<td id='comp_2' valign='top' align='left' style='border-right: 1px solid black'>ADDED</td>";
        alert(td2Add);
        tableTR.innerHTML += td2Add; //LINE 41, the line IE8 errors on!
    }
 }
 </script>

函数addComparison()
{
var tableTR=document.getElementById(“比较”);
if(tableTR!=null)
{
var td2Add=“已添加”;
警报(td2Add);
tableTR.innerHTML+=td2Add;//第41行,IE8行出错!
}
}
单击此链接可调用此函数:

 <a href='javascript:addComparison();'>Add Comparison</a>

正在尝试更新的元素:

 <table>
   <tr id='comparisons' valign='top' align='left'></tr>
 </table>

'tr'元素上的'innerHTML'在IE中是只读的

除以下对象外,该属性对所有对象都是读/写的,例如 它是只读的:COL、COLGROUP、FRAMESET、HEAD、HTML、STYLE、, 表,TBODY,TFOOT,THEAD,TITLE,TR

资料来源:

但是,您可以使用innerHTML(可能不是您想要的)或使用
document.createElement
appendChild
/
replaceChild
等来创建一个全新的表,以获得预期的结果


希望这有帮助

我想我必须使用document.createElement因为它的价值,这一直是IE中的一个问题。你可以玩弄
documentFragment
,但是。。这不值得。还有很多重画的地方等。