javascript - Nodejs EJS 中的循环
问题描述
我有一个带引导程序的 nodejs 应用程序。引导卡将连续放置 3 个,与列中的数据一样多。我尝试了两个 for 循环,但数据在每一行中都重复了。我无法弄清楚如何做到这一点。
我的 EJS 代码是
<% for(var i=0; i<details.length; i++) { %>
<div class="row">
<% for(var j=0; j<3; j++) { %>
<div class="col-sm">
<div class="card border-danger mb-3" style="max-width: 20rem;">
<div class="card-body">
<h4 class="card-title"><%= details[i].name %></h4>
<p class="card-text">Location : <%= details[i].location %><br>
City: <%= details[i].city %><br>
Available: <%= details[i].available %><br>
Phone No: <%= details[i].phone %></p>
</div>
</div>
</div>
<% } %>
</div>
<% } %>
解决方案
看起来你只需一个循环就可以逃脱。要使行逻辑正确,只需检查循环计数器i
以查看您是否在索引 0、3、6 等上,然后如果是,则可以发出一行。
<% for(var i = 0; i < details.length; i++) { %>
<% if (i === 0 || i % 3 === 0) { %>
<div class="row">
<% } %>
<div class="col-sm">
<div class="card border-danger mb-3" style="max-width: 20rem;">
<div class="card-body">
<h4 class="card-title"><%= details[i].name %></h4>
<p class="card-text">Location : <%= details[i].location %><br>
City: <%= details[i].city %><br>
Available: <%= details[i].available %><br>
Phone No: <%= details[i].phone %>
</p>
</div>
</div>
</div>
<% if (i === 0 || i % 3 === 0) { %>
</div>
<% } %>
<% } %>
推荐阅读
- linux - 删除 0 大小文件的最快方法
- python - For Loop - TypeError:必须是 str,而不是 int
- session-cookies - jquery,从前端删除cookies
- connection - 与主机 localhost 端口 1433 的 TCP/IP 连接失败。错误:“连接超时。”
- reactjs - Typescript React延迟加载路由中的组件
- bash - 管道输入到 bash 脚本(翻译文本)
- apache-kafka - 具有自定义对象数据类型的 Kafka 流聚合
- postgresql - 有没有办法使用 massjs 并使用动态变量作为表名来创建表和选择表?
- amazon-web-services - SAML Assumed-Role 用户无权执行操作
- powershell - 如何在不安装 Sharepoint 的情况下将 Sharepoint 加载项与 PowerShell 一起使用?