function DeleteData(ID)
{
var ctrlId=ID.id;
var divcontents=document.getElementById(ctrlId).innerHTML;
var tabid=ctrlId.replace(/div/,'tab');
var tabcontents=document.getElementById(tabid).innerHTML;
alert(document.getElementById(tabid).innerHTML);
document.getElementById(tabid).innerHTML="<TBody><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr></TBody>";
document.getElementById(ctrlId).innerHTML='';
}
我正在尝试用空表替换该表,但是
document.getElementById(tabid).innerHTML="<TBody><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr></TBody>";
此行导致Unknown Runtime Error
发布于 2009-02-17 09:02:05
您不能将值设置为表的innerHTML,您应该访问子单元格或行,并像这样更改它们:
document.getElementById(tabid).rows[0].cells.innerHTML = 'blah blah';
发布于 2010-11-03 11:43:00
在IE8中,当尝试的代码从对象内部激发时,不能更改该对象的innerHTML。
例如:
<span id='n1'>
<input type=button value='test' onclick='DoSomething(this);'>
</span>
将以下代码放在文档的某个远程角落:
<script type='text/javascript'>
function DoSomething(element)
{
document.getElementById("n1").innerHTML = "This is a test"
}
</script>
此操作将失败,并显示未知运行时错误。我认为这与您试图替换触发当前执行行的HTML代码有关。onclick事件是被DoSomething函数替换的代码的一部分。IE8不喜欢这样。
我通过将计时器事件设置为250毫秒来解决我的问题,这样在250毫秒结束时调用的函数将替换跨度的innerHTML。
发布于 2011-02-09 18:06:47
我发现在IE8中有些元素是只读的: COL,COLGROUP,FRAMESET,HEAD,HTML,STYLE,TABLE,TBODY,TFOOT,HEAD,TITLE,TR。
因此,如果您尝试为这些元素设置innerHTML,IE8会通知alter with Unknown Runtime Error。
更多细节在这里:http://msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx。
最简单的方法是将只读元素转换为div元素。
https://stackoverflow.com/questions/555965
复制相似问题