IE版本:8.0.6001.18702
<tr id="week-days"></tr>
function displayWeekDay( lang )
{
var txt = '<td>num</td>';
for ( i = 0; i < langs[lang].day.length; i++ )
if ( i == 5 ) txt += '<td class="red"><b>' + langs[lang].day[i] + '</b></td>';
else if ( i == 6 ) txt += '<td class="red"><b>' + langs[lang].day[i] + '</b></td>';
else txt += '<td><b>' + langs[lang].day[i] + '</b></td>';
document.getElementById("week-days").innerHTML = txt;
}
错误在最后一行 - document.getElementById(“week-days”)。innerHTML = txt;
我有点困惑 - 有一个错误,但一切都正常显示。 Mozilla,Chrome,Safari都没有错误。任何想法都会被贬低。
编辑
答案 0 :(得分:3)
来自MSDN:“table和tr对象的innerText和innerHTML属性是只读的”http://msdn.microsoft.com/en-us/library/ms532998(v=vs.85).aspx
解决方案是使用dom创建tr元素,或使用html构建完整的临时表,然后将行移动到目标表。如下所示:
/** Appends a row to the given tbody */
function appendRow(tbody, trHTML) {
var tempNode = document.createElement('div');
tempNode.innerHTML = "<table><tr>" + trHTML + "</tr></table>";
var tempTable = tempNode.firstChild;
tbody.appendChild(tempTable.rows[0] );
}
您可以修改函数以指定要插入的位置,或者在之前或之后插入另一个tr。
答案 1 :(得分:1)
这听起来像是quite some time存在的IE问题。我过去曾经遇到过它。您可能想尝试通过DOM方法创建节点。