首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中将DOM创建的表格转换为多维表格

在JavaScript中将DOM创建的表格转换为多维表格
EN

Stack Overflow用户
提问于 2021-03-10 09:28:25
回答 2查看 40关注 0票数 0

我正在尝试创建一个表,当你输入一个值时,它会抓取这些数据,并将1-99之间的随机数放入其中,其中一些可以为空,我在这里使用DOM创建了它

代码语言:javascript
复制
    for (i = 0; i < NumberOfCells / NumberOfCellsInRow; i++) {
        Row = document.createElement("tr")
        Row.setAttribute("id", i + 1 + "tr")
        document.getElementById("table").appendChild(Row)
        AmountOfRows = i + 1;
        }
    for (i = 0; i < NumberOfCells; i++) {
        temporaryVar = randomInt(1,99, 23)
        Cell = document.createElement("td")
        Cell.innerHTML = temporaryVar;
        Cell.setAttribute("id", i + 1 + "td")
        document.getElementById(Math.floor(i/NumberOfCellsInRow+1)
        +"tr").appendChild(Cell)
        }

到目前为止,这个方法运行得很好,但是我想把这个表转换成一个多维数组。我想过要做什么

代码语言:javascript
复制
if (i/NumberOfCellsInRow+1 < NumberOfCellsInRow) {
  table.push(new Array(temporaryVar))
}

我知道这很接近,但我不知道还能做什么

示例:所有的数字都是随机的,但我会有一个如下所示的表,并且我希望数组看起来像这样

45 10“空白”16

44 53 88“空白”

9“空白”

82 63 43“空白”

所以呢?

代码语言:javascript
复制
table = [45, 10, " ", 16],
 [44, 53, 88, " "],
 [9, " ", " ", " "],
 [82, 63, 43, " "]

注意:我不想首先创建数组,以防有任何我想要更改的东西使其中断

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-10 10:23:19

只需这样编写代码...

代码语言:javascript
复制
const myTable = document.getElementById("table")

for ( let r=0; r < (NumberOfCells / NumberOfCellsInRow); ++r)
  myTable.insertRow().id = `${r+1}tr`

for (c=0; c < NumberOfCells; ++c)
  {
  let Xcell = myTable.rows[(Math.floor(c/NumberOfCellsInRow+1) -1)].insertCell()
  Xcell.id          = `${c+1}td`
  Xcell.textContent = randomInt(1,99, 23)
  }

console.log('AmountOfRow', myTable.rows.length )
票数 1
EN

Stack Overflow用户

发布于 2021-03-10 10:13:31

所以我想通了,

我添加了几行代码来创建它

代码语言:javascript
复制
    for (i = 0; i < NumberOfCells / NumberOfCellsInRow; i++) {
        Row = document.createElement("tr")
        Row.setAttribute("id", i + 1 + "tr")
        document.getElementById("table").appendChild(Row)
        AmountOfRows = i + 1;
        table.push(new Array()) //added this line
        }
    for (i = 0; i < NumberOfCells; i++) {
        temporaryVar = randomInt(1,99, 23)
        Cell = document.createElement("td")
        Cell.innerHTML = temporaryVar;
        Cell.setAttribute("id", i + 1 + "td")
        table[Math.floor(i/NumberOfCellsInRow)].push(temporaryVar) //Added this line
        document.getElementById(Math.floor(i/NumberOfCellsInRow+1)
        +"tr").appendChild(Cell)
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66557130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档