正如标题所说,我遇到了IE8的问题(适用于FF和IE9)。以下代码不会产生任何错误,如果我替换div,ul和li;有用。我做了一些搜索,并且没有找到任何关于(table,tr,td)标签的任何内容,使用document.createElement
与IE8不支持。我哪里错了?
以下是代码:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>My Page Title</title>
<script>
function init() {
var ele = document.getElementById('content');
var table = document.createElement('table');
var tr = document.createElement('tr');
var td = document.createElement('td');
var txt = document.createTextNode('IE8');
td.appendChild(txt);
tr.appendChild(td);
table.appendChild(tr);
ele.appendChild(table);
}
</script>
</head>
<body onload="init();">
<div id="content"></div>
</body>
</html>
答案 0 :(得分:2)
您不能仅使用createElement()
函数来创建table,
tr
,td
来创建整个表格元素。
相反,您必须使用表格对象的insertRow()
,insertCell()
功能
供参考,请查看:
http://viralpatel.net/blogs/dynamically-add-remove-rows-in-html-table-using-javascript/
修改强>
即使我以同样的方式思考IE问题,
购买我发现实际上createElement()
要在IE7中工作,您必须创建tbody
对象并将其附加到table
对象和tr
对象tbody
对象
tb = document.createElement("tbody")
var tbody = document.createElement('tbody');
table.appendChild(tbody);
var table_row = document.createElement('tr');
tbody.appendChild(table_row)//
答案 1 :(得分:1)
只需在标记中添加<!DOCTYPE html>
即可。
在IE7及更高版本中,没有DOCTYPE的默认渲染是Quirks模式(IE5)。
答案 2 :(得分:0)
试试这个:
var ele = document.getElementById('content');
var table = document.createElement('table');
ele.appendChild(table);
var tr = document.createElement('tr');
table.appendChild(tr);
var td = document.createElement('td');
tr.appendChild(td);
var txt = document.createTextNode('IE8');
td.appendChild(txt);