JavaScript二维数组循环渲染表格异常:如何正确展示SelfData数据
解决表格数据渲染问题
嘿,我来帮你搞定这个表格渲染的bug!你的代码现在有两个核心问题导致展示异常:
- 无效的HTML嵌套:你在一个
<td>标签里直接通过map生成<tr>标签,这不符合HTML表格的结构规则——<tr>必须直接放在<table>、<thead>、<tbody>或者<tfoot>里面,不能嵌套在<td>里,浏览器没法正确解析这种错误结构。 - 列对应错误:每条
SelfData数据应该对应表格的一整行,而不是塞进同一个单元格里。
下面是修正后的代码,完美匹配你要的表格样式:
<table> <thead> <tr> <th></th> <th>Nature of liability</th> <th>Creditor</th> </tr> </thead> <tbody> {/* 直接循环生成每一行数据 */} {SelfData.map((data, i) => ( <tr key={i}> <td>Self</td> <td>{data[0]}</td> {/* 取出负债描述 */} <td>{data[1]}</td> {/* 取出债权人 */} </tr> ))} </tbody> </table>
修正要点说明:
- 把表头放在
<thead>里,数据行放在<tbody>里,这是更规范的语义化表格结构 - 直接在
<tbody>里循环SelfData,每一项生成一个完整的<tr> - 每行的三个
<td>分别对应固定的"Self",以及数组里的两个字段,完美对应表头的三列 - 给
map生成的<tr>加上key属性(这里用索引i做临时key,如果你有唯一标识的话用那个会更好)
这样修改后,表格就能正确渲染出你想要的效果啦!
内容的提问来源于stack exchange,提问作者Tje123
相关产品推荐
相关产品推荐

