innerHTML append in IE9
我有一个页面,它只是尝试在 javascript 函数中执行以下操作:
1 2 3 | document.getElementById("chatTable").innerHTML +="<tr><td colspan="3"> a?? <span color="purple">------------Switched to channel:" + channelName + a?? "------------</span></td></tr>"; |
这适用于我尝试过的所有其他浏览器(Firefox、Chrome、Safari、Android 手机浏览器、iPhone 浏览器),但不适用于 IE9。是的,我确实有一个 ID 为
1 | <!DOCTYPE HTML> |
在我的页面中。我做错了什么?!
您不能将
请参阅动态构建表以使用 Microsoft 的表对象模型在 Internet Explorer 中操作表。
我想这可能会在 IE 的未来版本中发生变化,但这是你现在所剩下的。
除了 Jim 的回答之外,当您附加 HTML 时,您会破坏并重建现有表。即使在允许您这样做的浏览器中,添加行的通常更好的解决方案是:
1 2 3 4 5 6 7 8 9 10 11 | var table = document.getElementById("chatTable"), row = table.insertRow(-1), //-1 means at end cell = row.insertCell(0), span = document.createElement("span"); span.style.color ="purple"; span.appendChild(document.createTextNode("------------Switched to channel:" + channelName +"------------")); cell.colSpan = 3; cell.appendChild(span); row.appendChild(cell); table.appendChild(row); |
它通常更快,并且您不会丢失任何已附加到表中的事物的现有事件处理程序。