Javascript 转换为字符串的表长度属性不返回任何内容

Javascript 转换为字符串的表长度属性不返回任何内容,javascript,html,html-table,Javascript,Html,Html Table,我已经试着找出这个bug有一段时间了,但我在网上找不到任何关于它的信息 我期望发生的事情: 按下“创建行”按钮时,将在表格底部创建新行。该行有三个单元格。第一个是指数,第二个是“新1”,第三个是“新2” 发生了什么: 我不希望出现的情况是,新行中的第一个单元格显示为空。检查表明它实际上没有内容。将字符串保存到变量中,然后将其添加到单元格的内部html也不起作用。但是,如果我将该变量记录到控制台,它会打印正确的索引 函数myCreateFunction(){ var table=document

我已经试着找出这个bug有一段时间了,但我在网上找不到任何关于它的信息

我期望发生的事情:

按下“创建行”按钮时,将在表格底部创建新行。该行有三个单元格。第一个是指数,第二个是“新1”,第三个是“新2”

发生了什么:

我不希望出现的情况是,新行中的第一个单元格显示为空。检查表明它实际上没有内容。将字符串保存到变量中,然后将其添加到单元格的内部html也不起作用。但是,如果我将该变量记录到控制台,它会打印正确的索引

函数myCreateFunction(){
var table=document.getElementById(“myTable”);
var row=table.insertRow(table.rows.length);
var cell1=行插入单元格(0);
var cell2=行插入单元格(1);
var cell3=行插入单元格(2);
var test=table.rows.length.toString()
cell2.innerHTML=test.toString()
console.log(测试)
cell2.innerHTML=“新建1”;
cell3.innerHTML=“新2”;
}
函数myDeleteFunction(){
document.getElementById(“myTable”).deleteRow(document.getElementById(“myTable”).rows.length-1);
}
表格,
运输署{
边框:1px纯黑;
}
单击按钮为表创建和删除行

创建行 删除行

1. 新1 新2


简单地说,

您没有将任何值设置为
cell1

事实上,您的问题是将索引插入到
cell2
而不是
cell1
,因此
cell1
始终为空

只需更改这一行:

cell2.innerHTML = test.toString();
致:

演示:

函数myCreateFunction(){
var table=document.getElementById(“myTable”);
var row=table.insertRow(table.rows.length);
var cell1=行插入单元格(0);
var cell2=行插入单元格(1);
var cell3=行插入单元格(2);
var test=table.rows.length.toString()
cell1.innerHTML=测试;
console.log(测试)
cell2.innerHTML=“新建1”;
cell3.innerHTML=“新2”;
}
函数myDeleteFunction(){
document.getElementById(“myTable”).deleteRow(document.getElementById(“myTable”).rows.length-1);
}
表格,td{
边框:1px纯黑;
}
单击按钮为表创建和删除行

创建行 删除行

1. 新1 新2


您从未设置第一个插入单元格的
innerHTML
。您一定忘了设置第一个单元格的
innerHTML
,而将第二个单元格的
innerHTML
设置了两次

改变

cell2.innerHTML = test.toString()


表,td{
边框:1px纯黑;
}
单击按钮以创建和删除表的行

创建行 删除行

1. 新1 新2
函数myCreateFunction(){ var table=document.getElementById(“myTable”); var row=table.insertRow(table.rows.length); var cell1=行插入单元格(0); var cell2=行插入单元格(1); var cell3=行插入单元格(2); var test=table.rows.length.toString() cell1.innerHTML=测试; console.log(测试) cell2.innerHTML=“新建1”; cell3.innerHTML=“新2”; } 函数myDeleteFunction(){ document.getElementById(“myTable”).deleteRow(document.getElementById(“myTable”).rows.length-1); }


你从来没有设置过
cell1
的内容。有时候只需要第二双眼睛,谢谢@Pointy
cell1.innerHTML = test;
cell2.innerHTML = test.toString()
cell1.innerHTML = test;//you do not need to invoke toString() on a String