Javascript 创建长度为<;的.row.cells行;tr>;

Javascript 创建长度为<;的.row.cells行;tr>;,javascript,jquery,html,css,jquery-ui,Javascript,Jquery,Html,Css,Jquery Ui,您好,我想创建一个脚本,该脚本接受它找到的(tr)数量,然后创建这3行代码,但根据它得到的(tr)数量更改其中的代码数量。下面是一个示例: 我有一行代码,用于计算表中的表行(按下按钮后)减去表头(th): 我想做的是,例如,我得到的数字是3,我想复制这3行代码,并更改变量和其中的数字 下面是我要复制的3行代码: table = document.getElementById("items-table"); var cell1 = table.rows[1].cells[0].innerHTML;

您好,我想创建一个脚本,该脚本接受它找到的(tr)数量,然后创建这3行代码,但根据它得到的(tr)数量更改其中的代码数量。下面是一个示例:

我有一行代码,用于计算表中的表行(按下按钮后)减去表头(th):

我想做的是,例如,我得到的数字是3,我想复制这3行代码,并更改变量和其中的数字

下面是我要复制的3行代码:

table = document.getElementById("items-table");
var cell1 = table.rows[1].cells[0].innerHTML;
var cell2 = table.rows[1].cells[1].innerHTML;
var cell3 = table.rows[1].cells[2].innerHTML;
我想改变的是变量,这样我可以在以后定义它,如果我得到3,这就是我想要的输出:

var cell1 = table.rows[1].cells[0].innerHTML;
var cell2 = table.rows[1].cells[1].innerHTML;
var cell3 = table.rows[1].cells[2].innerHTML;

var cell4 = table.rows[2].cells[0].innerHTML;
var cell5 = table.rows[2].cells[1].innerHTML;
var cell6 = table.rows[2].cells[2].innerHTML;

var cell7 = table.rows[3].cells[0].innerHTML;
var cell8 = table.rows[3].cells[1].innerHTML;
var cell9 = table.rows[3].cells[2].innerHTML;
我该怎么做呢?我还想创建一个可以像这样表示所有var单元格的变量

tableData = []   tableData.append(var cell7 = etc..)
这样,我就可以使用tableData并:

localStorage.setItem("tableData", tableData);
然后我可以在另一个html文件中调用这个表数据变量。 我还希望本地存储变量行本身,以便可以单独调用它们

localStorage.setItem("item-name-1", cell1);
我该怎么做呢

重要提示:在我的html页面的开头,表是空的。然后,我使用几个输入和一个add按钮附加数据

非常感谢您的帮助。

您正在寻找阵列,在您的情况下,可能需要阵列阵列:

let cells = Array.prototype.map.call(document.getElementById("items-table").rows, row => {
    return Array.prototype.map.call(row.cells, cell => cell.innerHTML);
});
实例:

let cells=Array.prototype.map.call(document.getElementById(“items表”)。行,行=>{
返回Array.prototype.map.call(row.cells,cell=>cell.innerHTML);
});
日志(“单元格:”,单元格)
。作为控制台包装器{
最大高度:100%!重要;
}

第1行第1单元
第1行第2单元
第1行第3单元
第2行第1单元
第2行第2单元
第2行第3单元
第3行第1单元
第3行第2单元
第3行第3单元
第4行第1单元
第4行第2单元
第4行第3单元

将变量与数组一起使用:

var table, cell, i, r, noofrows;
table = document.getElementById("items-table");
noofrows = table.rows.length;

for (i = 0, r = 0, cell = []; r < noofrows; i++, r++) {
  cell[i] = table.rows[r].cells[0].innerHTML;
  cell[i+1] = table.rows[r].cells[1].innerHTML;
  cell[i+2] = table.rows[r].cells[2].innerHTML;
}
var表、单元格、i、r、noofrows;
table=document.getElementById(“项目表”);
noofrows=table.rows.length;
for(i=0,r=0,cell=[];r
然后,第一个单元格将被分配给变量
单元格[0]
,第二个单元格将被分配给
单元格[1]
,等等。例如,
document.write(单元格[0])
将写入“Item”(来自上一个问题)

document.write(单元格[1])
将写入“大小”


document.write(单元格[3])
将写入第2行的第一个单元格。

您的脚本基本上是做什么的,因为我看您根本没有提到rowCount@t.J。Crowder@MaxymWojnowskyj-无需,
map
(或
Array.from
)查看
行的
长度(以及一行中的
单元格)。是否应该
“[]”
[]
分配空数组?@MarkBaijens-否,它位于
JSON.parse的参数内。您可以执行
JSON.parse(localStorage.getItem(“tableData”)| |“[])
JSON.parse(localStorage.getItem(“tableData”)| |[])
。后者依赖于一些隐含的东西:当项目不存在时,
getItem
返回
null
,并将
null
传递到
JSON中。parse
导致它被强制为
“null”
,然后被解析为
null
:-)我反复讨论是在
JSON.parse
参数中还是在其结果中执行默认值。对不起,我看错了。现在还早。我认为它在解析函数之外。当我尝试运行代码时,我发现无法读取undefinedI的属性'length',然后更改了noofrows=$('#items table tr')。length然后我得到了无法读取undefined的属性'0',for cell[I]=table.rows[r]。cells[0]。innerHTML@我可以通过电子邮件发送我的全部代码吗?这样你就能明白为什么它不起作用了@InteltaIs表ID仍然是“items table”?正在执行-
var table, cell, i, r, noofrows;
table = document.getElementById("items-table");
noofrows = table.rows.length;

for (i = 0, r = 0, cell = []; r < noofrows; i++, r++) {
  cell[i] = table.rows[r].cells[0].innerHTML;
  cell[i+1] = table.rows[r].cells[1].innerHTML;
  cell[i+2] = table.rows[r].cells[2].innerHTML;
}