在 JavaScript 中构建动态表

Building dynamic table in JavaScript

本文关键字:动态 构建 JavaScript      更新时间:2023-09-26

所以我的最终目标是让用户输入三个或更多的单词,然后我必须分开单词,即如果有 4 个单词,我必须构建 4 行,每行都有单词,我已经用了几个小时,只是想不通为什么 insertRow() 方法不起作用,它告诉我"无法调用未定义的 insertRow() 方法"

我在条件的其他部分中拥有的内容:

//build table around input
    var table=document.getElementById('myTable');

    for(i=0; i<2; i++)
    {
    table.insertRow(i);
    table.insertCell(i);}

我看到的第一个问题是你在表 DOM 对象上调用.insertRow(),但随后你需要在一行而不是表上调用.insertRow()。 请参阅 insertCell 上的 MDN 了解更多详情。 下面是一些工作代码的示例:

function addWords(e) {
    var str = document.getElementById("words").value;
    var words = str.split(/['s,]/);
    if (words.length && words[0]) {
        //build table around input
        var table = document.getElementById('myTable');
        for (var i = 0; i < words.length; i++) {
            var row = table.insertRow(-1);
            var cell = row.insertCell(-1);
            cell.innerHTML = words[i];
        }
    }
}

还有一个工作演示:http://jsfiddle.net/jfriend00/3g3Qy/

您应该在 Row 对象上调用 insertCell。

var row = table.insertRow();
row.insertCell();

var table=... 后面加上一个console.log(table)。如果它打印未定义,问题是脚本运行得太快,您需要将脚本移动到页面的最底部,或者等待 DOM 加载。