<html>
<head>
</head>
<body>
<div id="div1">
</div>
</body>
<script>
var table = document.createElement("table");
var tr = document.createElement("tr");
var td = document.createElement("td");
var input = document.createElement("input");
input.type = "text";
input.id = "aa";
td.appendChild(input);
tr.appendChild(td);
table.appendChild(tr);
document.getElementById("div1").appendChild(table);
</script>
</html>上面的代码在火狐下面运行正常,在IE下面没有任何显示,请问这是为什么?

解决方案 »

  1.   

    原因是 Tabel标签内有个隐含的子标签"tbody"
    尽管直接书写HTML文档时不用写这个标签也可以
    但在用createElement()方法创建Tabel表格时要加入这个不然
    在页面上是看不到表内容的。如下代码才是正确的:<html>
    <head>
    <script>
    function createInput(){
    var content = document.getElementById("content");
    var table = document.createElement("table");
        table.border = 1;    // Add a Name|Type|Value header to the table
     var tbody=document.createElement("tbody");
        var header = document.createElement("tr");
        var headerName = document.createElement("th");
        var headerType = document.createElement("th");
        var headerValue = document.createElement("th");
        headerName.appendChild(document.createTextNode("Name"));
        headerType.appendChild(document.createTextNode("Type"));
        headerValue.appendChild(document.createTextNode("Value"));
        header.appendChild(headerName);
        header.appendChild(headerType);
        header.appendChild(headerValue);
       
     tbody.appendChild(header);
     table.appendChild(tbody);
    content.appendChild(table);
    }
    </script>
    </head>
    <body>
    <div id="content"></div>
    <script>createInput()</script>
    </body>
    </html>