所以我的最终目标是让用户输入三个或更多单词,然后我必须 分开单词,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);}
答案 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];
}
}
}
答案 1 :(得分:0)
您应该在Row对象上调用insertCell。
var row = table.insertRow();
row.insertCell();
答案 2 :(得分:0)
在console.log(table)
之后加var table=...
。如果它打印未定义,问题是脚本运行得太快,您需要将脚本移动到页面的最底部,或wait for the DOM to load。