日期:2014-05-17  浏览次数:20771 次

IE6/7/8中Table元素的innerHTML不能赋值

IE6/7/8中Table不能设置innerHTML属性,会报错,重现如下:

<!DOCTYPE HTML>
<html>
<head>
<title>TABLE 的 innerHTML Bug</title>
</head>
<body>
<script type="text/javascript">
	
var table = document.createElement('table');
table.innerHTML = '<tr><td>Test table innerHTML</td></tr>'
document.body.appendChild(table);

</script>

</body>
</html>
?

Ext.DomHelper中使用div,把table添加到div中间接实现。

MSDN 写道
The property is read/write for all objects except the following, for which it is read-only: COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR. The property has no default value.

DHTML expressions can be used in place of the preceding value(s). As of Internet Explorer 8, expressions are not supported in IE8 mode. For more information, see About Dynamic Properties.
?

相关:

http://msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx

https://developer.mozilla.org/en/dom:element.innerhtml

http://www.w3.org/TR/html5/apis-in-html-documents.html#dom-innerhtml

?

注:Select元素也存在相同的情况。

?

?

?

?

1 楼 yoyo837 2011-01-29  
IE下table的innerHTML是只读的,大佬
2 楼 enix2212 2011-02-04  
少了tbody元素吧
3 楼 shenshuibomb 2011-02-25  
select的innerHTML在IE下也是只读的(我的是IE8).使用的方法也是在select元素外加一个div层,然后对div进行操作,重新写整个select元素。
不要就不用innerHTML,用createElement,然后add.
4 楼 jj7jj7jj 2011-08-28  
tbody加上就好了
5 楼 tangjikey 2012-04-20  
ie9还是这样。