javascript - 如何在 x 列后动态创建新行
问题描述
我有想要table
动态添加到的 JSON 数据。我已经能够做到这一点,但我想要一种情况,即在第四列之后,自动创建新的行和列,并将剩余的 JSON 数据填充到新创建的列中。我不知道如何执行此任务。
这是我的代码;JSON数据来自数据库
for (var i = 0; i < data.length; i++) {
var p = data[i];
var occupied = p.occupied;
$("#room").append('<td>\n\
<div class="card cd" style="width: 15rem;">\n\
<img class="card-img-top" src="../images/Executive_Suite.jpg" alt="HOTEL D RIO">\n\
<div class="card-body r1" style="background-color: green">\n\
<h6 class="card-title name"><span>' + p.category + '</span><br/><span>' + p.position + '</span></h6> \n\
<p class="card-text price" style="color: #fff; font-size: 13px"><span>#' + p.unitprice + ' per 24hrs</span></p> \n\
<a type="button" class="btn btn-dark btn-sm cbody cbody0" style="color: #fff;"><i class="fa fa-plus"></i>Book Now</a>\n\
</div></div></td>');
}
解决方案
奥卡姆剃刀 - 只需使用变量来跟踪您所在的位置。可能我的代码没有创建所需的 HTML,但我相信你明白了......?
rowcnt = 0;
for (var i = 0; i < data.length; i++) {
var out = '';
var p = data[i];
var occupied = p.occupied;
rowcnt++;
if (rowcnt > 4){
out += '</tr><tr>';
rowcnt = 0;
}else{
out += '<td>\
<div class="card cd" style="width: 15rem;">\
<img class="card-img-top" src="../images/Executive_Suite.jpg" alt="HOTEL D RIO">\
<div class="card-body r1" style="background-color: green">\
<h6 class="card-title name"><span>'+p.category+'</span><br/><span>'+p.position+'</span></h6>\
<p class="card-text price" style="color: #fff; font-size: 13px"><span>#'+p.unitprice+' per 24hrs</span></p>\
<a type="button" class="btn btn-dark btn-sm cbody cbody0" style="color: #fff;"><i class="fa fa-plus"></i>Book Now</a>\
</div>\
</div>\
</td>';
}
$("#room").append(out);
}
推荐阅读
- c# - 在 C# 中,在一个块中对对象执行操作并返回它所需的最少代码构造?标识符的长度不重要
- python - 使用 bash 粘合 python 和 c++
- regex - 有没有办法让我缩小正则表达式查询?
- linux - 广播数据包不通过 Linux veth 隧道传播
- android - 在 CI 构建中找不到 Gradle 任务 assembleRelease,适用于 Android Studio
- java - 如何在具有不同 Java 版本的 Wildfly 服务器上运行两个 Web 应用程序?
- ruby-on-rails - 从 has_many 表中获取记录?
- javascript - 在 ReactJs 中单击动态生成的“链接”时如何将值传递给页面?
- c++ - C++ Boost 哈希计算无冲突
- ruby-on-rails - Rubocop 执行当地规则