For循环运行异常:未向表格添加数据反而插入至表格下方求助
问题分析与解决办法
嘿,我一眼就瞅出问题所在啦!你这代码的表格结构完全写乱了,浏览器没法正确解析,才会把数据插到表格底下而不是表格里面。
问题出在哪?
你把<div class="table-responsive-sm">和<tbody>都放到{%for%}循环里了——这意味着每循环一次,就会生成一个新的响应式容器和表格主体,而且这些元素还跑到了<table>标签的逻辑结构外面(浏览器看到table里面嵌套div,会自动把div移到table外面),自然就变成在表格下方追加内容了。
修正后的代码
把结构捋顺,正确的表格结构应该是:响应式容器包裹整个表格,表格里只放一个<tbody>,然后在<tbody>里循环生成每一行<tr>:
<div class="container"> <div class="table-responsive-sm"> <table class="table"> <tbody> {%for laptop in laptops%} <tr> <td>{{laptop.laptop_id}}</td> <td>{{laptop.make}}</td> <td>{{laptop.model}}</td> <td>{{laptop.specification}}</td> <td>{{laptop.warehouse_location}}</td> </tr> {%endfor%} </tbody> </table> </div> </div>
关键改动点
- 把
<div class="table-responsive-sm">移到<table>外面,只需要一个就够了,不用循环生成 - 把
<tbody>放到{%for%}循环的外面,确保所有表格行都在同一个表格主体里 - 循环里只保留
<tr>和对应的<td>,这样每一次循环都会在表格里新增一行数据
这样修改后,for循环生成的每一条笔记本数据都会正确插入到表格的行里,而不是跑到表格外面啦!
内容的提问来源于stack exchange,提问作者Super Retarded Dog
相关产品推荐
相关产品推荐

