文档.在表、tr、td标签上创建元素在IE8上失败

document.createElement on table,tr,td tags fails IE8

本文关键字:元素 IE8 失败 创建 标签 在表 tr td 文档      更新时间:2023-09-26

正如标题所说,我在IE8上有一个问题(在FF和IE9上工作)。下面的代码不会产生任何错误,如果我替换div、ul和li;它的工作原理。我做了一些搜索,没有发现任何(表,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>

不能只使用createElement()函数创建table,trtd来创建整个表元素。

您必须使用表对象的insertRow(), insertCell()函数

For Reference检查this:

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)// 

在标记中添加<!DOCTYPE html>。在IE7及以上版本中,没有DOCTYPE的默认渲染是Quirks模式(IE5)。

try this:

  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);