javascript - 在 JavaScript 中创建动态表的一些误解

标签 javascript jquery

我尝试使用 JavaScript 创建动态表,该表包含两列名字和姓氏。

这是 JavaScropt 代码:

function CreatTable() {

    var tablearea = document.getElementById('ShowDataID');
    var table = document.createElement('table');
    var thead = document.createElement("thead");
    var tr = document.createElement('tr');
    var th = document.createElement('th');

    var firstNameTxt = document.createTextNode("First Name");
    th.appendChild(firstNameTxt);
    tr.appendChild(th);
    thead.appendChild(tr);
    table.appendChild(thead);

    var familyNameTxt = document.createTextNode("Family Name");
    th.appendChild(familyNameTxt);
    tr.appendChild(th);
    thead.appendChild(tr);
    table.appendChild(thead);

    for (var i = 1; i < 4; i++) {
        var tr = document.createElement('tr');
        tr.appendChild(document.createElement('td'));
        tr.appendChild(document.createElement('td'));
        tr.cells[0].appendChild(document.createTextNode('John'))
        tr.cells[1].appendChild(document.createTextNode('McDowell'))
        table.appendChild(tr);
    }


    tablearea.appendChild(table);
}

这是我得到的结果:

enter image description here

我的问题是为什么我在姓氏栏下没有得到“McDowell”。为什么它被转移了?我错过了什么?

最佳答案

第二次尝试创建一个新的th,不要使用已经用过的

function CreatTable() {

    var tablearea = document.getElementById('ShowDataID');
    var table = document.createElement('table');
    var thead = document.createElement("thead");
    var tr = document.createElement('tr');
    var th = document.createElement('th');

    var firstNameTxt = document.createTextNode("First Name");
    th.appendChild(firstNameTxt);
    tr.appendChild(th);
    thead.appendChild(tr);
    table.appendChild(thead);

    //********* Look here *****************
    var familyNameTxt = document.createTextNode("Family Name");
    th = document.createElement('th'); //*** Create a new th here. Dont use the old one
    //********* Look here *****************

    th.appendChild(familyNameTxt);
    tr.appendChild(th);
    thead.appendChild(tr);
    table.appendChild(thead);

    for (var i = 1; i < 4; i++) {
        var tr = document.createElement('tr');
        tr.appendChild(document.createElement('td'));
        tr.appendChild(document.createElement('td'));
        tr.cells[0].appendChild(document.createTextNode('John'))
        tr.cells[1].appendChild(document.createTextNode('McDowell'))
        table.appendChild(tr);
    }


    tablearea.appendChild(table);
}

DEMO

关于javascript - 在 JavaScript 中创建动态表的一些误解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26736845/

相关文章:

javascript - 在光标位置的可编辑 div 中插入几个元素

jquery - 如何使可拖动捕捉到可放置并允许交换?

javascript - 如何从函数返回 javascript 中的数组?

javascript - 无法读取长度并删除新添加的元素JQuery

jquery - 我如何使用 jQuery 将图标淡化为较低的不透明度?

如果 Ajax 在预测时间后成功,则 jQuery 刷新/重新加载页面

javascript - CSS 变换元素建议

php - Javascript/PHP 和时区

javascript - HTML5 本地存储和 SQL

javascript - 更新 for 循环内的 Javascript 对象属性