javascript - 在 JavaScript 中将 DOM 创建的表转换为多维表
问题描述
我正在尝试创建一个表,当你输入一个值时,它会抓取这些数据并在 1-99 之间放置随机数,有些可以是空白的,我在这里用 DOM 创建了它
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)
}
到目前为止,这工作得很好,但我想把这个确切的表变成一个多维数组。我想过做
if (i/NumberOfCellsInRow+1 < NumberOfCellsInRow) {
table.push(new Array(temporaryVar))
}
我知道这很接近,但我不知道还能做什么
示例:所有数字都是随机的,但我会有一个看起来像这样的表,我希望数组看起来像
45 10 “空白” 16
44 53 88 “空白”
9“空白”“空白”“空白”
82 63 43 “空白”
那么那么
table = [45, 10, " ", 16],
[44, 53, 88, " "],
[9, " ", " ", " "],
[82, 63, 43, " "]
注意:我不想先创建数组,以防万一我想更改任何会导致中断的内容
解决方案
只需这样编码...
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 )
推荐阅读
- sql - Hive:如果两个表之间满足条件,则查找唯一值
- android-source - 如何为 Nexus 5X(牛头)构建 android-6.0.1_r67?
- flutter - 使用 Float SliverAppBar 的 List 很短时,NestedScrollView 不滚动
- r - 基于另一列中的值对 R 数据帧中的行进行矢量化重新编码
- android - Android:对 jpeg 的 MediaStore 查询失败
- reactjs - 如何使用反应测试库测试材料 ui 自动完成谷歌地图
- python - 线程与 Python 中的对象一样存在
- java - 如何在 Android 中使用 Button 进行多项操作
- html - 居中对齐内容
- c++ - 复制矢量
当 Base 是一个抽象类时