在JavaScript中构建动态表

时间:2013-11-01 00:37:41

标签: javascript

所以我的最终目标是让用户输入三个或更多单词,然后我必须 分开单词,I.E如果有4个单词,我必须用每个单词构建4行, 我已经使用了几个小时,只是无法弄清楚为什么insertRow()方法不起作用,它告诉我"不能调用未定义的插入方法#34;

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

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


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

3 个答案:

答案 0 :(得分:1)

我看到的第一个问题是你在表DOM对象上调用.insertRow(),但是你需要在一行而不是在表上调用.insertRow()。有关详细信息,请参阅MDN on insertCell。以下是一些工作代码的示例:

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/

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

console.log(table)之后加var table=...。如果它打印未定义,问题是脚本运行得太快,您需要将脚本移动到页面的最底部,或wait for the DOM to load