用js创建一个table
Creating a table with js
好的,我对这些东西很陌生。我以为我的 DOM 感觉是对的,但我的代码不工作。任务是创建一个 table 之类的
这个
这是我做的作品。您能帮我指出我犯的错误或代码中缺少的部分吗?非常感谢您的帮助。
const tableValues = new Array(10).fill(false).map((x, i) => {
return new Array(10).fill(1).map((y, i2) => {
return (i + 1) * i2
})
})
document.addEventListener('DOMContentLoaded', tableCreate, false);
function tableCreate() {
const table = document.getElementById("table");
tableValues.forEach((row) => {
const row = document.createElement("tr")
row.forEach(cell => {
const cell = document.createElement("td");
cell.innerHTML = cellText;
cell.appendChild(cellText)
}
row.appendChild(cell))
})
table.appendChild(body)
}
<table>
<tbody id="table"></tbody>
</table>
我已经修复了你的脚本,没有对代码做太多改动。研究它并找出问题所在
基本上,您在两个循环之外都有 appendChild。
您还在单元格上使用了两次 appendChild - 您可以在值上使用 createTextNode 以在 cellcontent
上使用 appendChild
const tableValues = new Array(10).fill(false).map((x, i) => {
return new Array(10).fill(1).map((y, i2) => {
return (i + 1) * i2
})
})
document.addEventListener('DOMContentLoaded', tableCreate, false);
function tableCreate() {
const table = document.getElementById("table");
tableValues.forEach(values => {
const row = document.createElement("tr")
values.forEach(value => {
const cell = document.createElement("td");
cell.innerHTML = value;
//cell.appendChild(cellText)
row.appendChild(cell)
})
table.appendChild(row)
})
}
<table>
<tbody id="table"></tbody>
</table>
这是一个较短的版本
const tableValues = new Array(10).fill(false).map((x, i) => new Array(10).fill(1).map((y, i2) => (i + 1) * i2))
const tableCreate = () => document.getElementById("table")
.innerHTML = tableValues
.map(values => `<tr>
${values
.map(value => `<td>${value}</td>`).join('')}
</tr>`).join('');
document.addEventListener('DOMContentLoaded', tableCreate);
<table>
<tbody id="table"></tbody>
</table>
好的,我对这些东西很陌生。我以为我的 DOM 感觉是对的,但我的代码不工作。任务是创建一个 table 之类的 这个
这是我做的作品。您能帮我指出我犯的错误或代码中缺少的部分吗?非常感谢您的帮助。
const tableValues = new Array(10).fill(false).map((x, i) => {
return new Array(10).fill(1).map((y, i2) => {
return (i + 1) * i2
})
})
document.addEventListener('DOMContentLoaded', tableCreate, false);
function tableCreate() {
const table = document.getElementById("table");
tableValues.forEach((row) => {
const row = document.createElement("tr")
row.forEach(cell => {
const cell = document.createElement("td");
cell.innerHTML = cellText;
cell.appendChild(cellText)
}
row.appendChild(cell))
})
table.appendChild(body)
}
<table>
<tbody id="table"></tbody>
</table>
我已经修复了你的脚本,没有对代码做太多改动。研究它并找出问题所在
基本上,您在两个循环之外都有 appendChild。 您还在单元格上使用了两次 appendChild - 您可以在值上使用 createTextNode 以在 cellcontent
上使用 appendChildconst tableValues = new Array(10).fill(false).map((x, i) => {
return new Array(10).fill(1).map((y, i2) => {
return (i + 1) * i2
})
})
document.addEventListener('DOMContentLoaded', tableCreate, false);
function tableCreate() {
const table = document.getElementById("table");
tableValues.forEach(values => {
const row = document.createElement("tr")
values.forEach(value => {
const cell = document.createElement("td");
cell.innerHTML = value;
//cell.appendChild(cellText)
row.appendChild(cell)
})
table.appendChild(row)
})
}
<table>
<tbody id="table"></tbody>
</table>
这是一个较短的版本
const tableValues = new Array(10).fill(false).map((x, i) => new Array(10).fill(1).map((y, i2) => (i + 1) * i2))
const tableCreate = () => document.getElementById("table")
.innerHTML = tableValues
.map(values => `<tr>
${values
.map(value => `<td>${value}</td>`).join('')}
</tr>`).join('');
document.addEventListener('DOMContentLoaded', tableCreate);
<table>
<tbody id="table"></tbody>
</table>