insertRow在IE7中返回null

时间:2011-04-29 11:58:32

标签: javascript dom internet-explorer-7

        var otbody = document.createElement('tbody');
        var otr = otbody.insertRow(ordernumber);
        otr.id="order" + ordernumber;
        var pidCell = otr.insertCell(0);

在IE7中执行insertRow时出错。我使用IE9的IE7模式,而otbody确实有insertRow方法。我在调试器控制台中尝试了0,-1,1等作为此方法的参数,但都返回null。 当我使用document.createElement(“tr”)创建表行时,insertCell()返回null。 我想知道这些处理表的方法是否适用于所有浏览器。

1 个答案:

答案 0 :(得分:6)

IE7要求附加到表元素的tbody来创建tr,所以你应该创建一个额外的表元素,将tbody元素追加到table,而不是在tbody元素上调用insertRow:

var otable = document.createElement('table');
var otbody = document.createElement('tbody');
otable.appendChild(otbody);
var otr = otbody.insertRow(0); // now otr will not be null
var otd = otr.insertCell(0); // and the same as tr element