0

这个源代码是什么导致它在 IE 中实际生成一个表,而不是什么都不做。

        function generateATable()
        {
            tableContainer = document.getElementById("tableDiv");
            var tableElement = document.createElement("table");

            // Append the Table Element to the table 
            // container.
            tableContainer.appendChild(tableElement);

            // IE Requires a TBODY when dynamically generating 
            // tables.  (I thought this was it but apparently it isn't)
            var tbodyElement = document.createElement("tbody");

            // First we'll append the tbody.
            tableElement.appendChild(tbodyElement);

            var trElement1 = document.createElement("tr");

            // Next we'll append the first trElement to the 
            // tbody.
            tbodyElement.appendChild(trElement1);

            var aaCell = trElement1.insertCell(-1);
            var abCell = trElement1.insertCell(0);

            var textNodeAA = document.createTextNode("AA");
            var textNodeAB = document.createTextNode("AB");

            aaCell.appendChild(textNodeAA);
            abCell.appendChild(textNodeAB);

            tbodyElement.appendChild(trElement1);

            var baCell = trElement1.cells[0].cloneNode(false);
            var bbCell = trElement1.cells[1].cloneNode(false);

            var textNodeBA = document.createTextNode("BA");
            var textNodeBB = document.createTextNode("BB");

            trElement2 = trElement1.cloneNode(false);

            tbodyElement.appendChild(trElement2);

            baCell.appendChild(textNodeBA);
            bbCell.appendChild(textNodeBB);

            trElement2.appendChild(baCell);
            trElement2.appendChild(bbCell);

            tableElement.style.border="4px solid black";

        }

我很抱歉...这是其他问题...创建表格的数据没有填写,投票支持每个人...对不起!...

4

4 回答 4

7
                    tableContainer = document.getElementById("tableDiv");
                    var tableElement = document.createElement("table");

                    // Append the Table Element to the table 
                    // container.
                    tableContainer.appendChild(tableElement);

就是这样。其余的实际上是填充表格。

我们在现有的 HTML 文档中找到一个名为“tableDiv”的 div,然后我们创建一个 <table> 元素,并将其添加到 tableDiv。

于 2008-12-19T21:50:43.420 回答
4

创建可以在页面上看到的表包括两个步骤 - 创建表节点:

var tableElement = document.createElement("table");

…并将其添加为文档中节点的子节点:

tableContainer = document.getElementById("tableDiv");
tableContainer.appendChild(tableElement);
于 2008-12-19T21:53:14.023 回答
2
document.createElement("table")
  ...
tableContainer.appendChild(tableElement);

这会向 DOM 添加一个元素。

于 2008-12-19T21:52:00.000 回答
2

我不确定您为什么要对所有回答正确的人投反对票。您想要逐行描述代码的作用吗?

function generateATable() {
    /* obtain a reference to a div */
    tableContainer = document.getElementById("tableDiv");
    /* create a table element */
    var tableElement = document.createElement("table");

    // Append the Table Element to the table 
    // container.
    /* append the table element to the div */
    tableContainer.appendChild(tableElement);

    // IE Requires a TBODY when dynamically generating 
    // tables.  (I thought this was it but apparently it isn't)
    /* create a tbody element */
    var tbodyElement = document.createElement("tbody");

    // First we'll append the tbody.
    /* append the tbody element to the table element */
    tableElement.appendChild(tbodyElement);

    /* create a row element */
    var trElement1 = document.createElement("tr");

    // Next we'll append the first trElement to the 
    // tbody.
    /* append the row element to the tbody element */
    tbodyElement.appendChild(trElement1);

    /* insert two cells */
    var aaCell = trElement1.insertCell(-1);
    var abCell = trElement1.insertCell(0);

    /* create two text nodes */
    var textNodeAA = document.createTextNode("AA");
    var textNodeAB = document.createTextNode("AB");

    /* append the text nodes to the cells */
    aaCell.appendChild(textNodeAA);
    abCell.appendChild(textNodeAB);

    /* append the row element to the tbody element ... again */
    tbodyElement.appendChild(trElement1);

    /* create two new cells that are shallow copies of the two cells above */
    var baCell = trElement1.cells[0].cloneNode(false);
    var bbCell = trElement1.cells[1].cloneNode(false);

    /* create two more text nodes */
    var textNodeBA = document.createTextNode("BA");
    var textNodeBB = document.createTextNode("BB");

    /* create a row element that is a shallow copy of the first row */
    trElement2 = trElement1.cloneNode(false);

    /* append the 2nd row element to the tbody element */
    tbodyElement.appendChild(trElement2);

    /* append the text nodes to the cells */
    baCell.appendChild(textNodeBA);
    bbCell.appendChild(textNodeBB);

    /* append the cells to the 2nd row element */
    trElement2.appendChild(baCell);
    trElement2.appendChild(bbCell);

    /* set the border style of the table element */
    tableElement.style.border="4px solid black";
}
于 2008-12-19T21:55:26.017 回答