如何移除EJS循环中<th>元素间的换行(非<%-%>修剪方式)
解决EJS循环渲染产生多余换行的问题
你遇到的问题根源是EJS会将模板中EJS标签以外的所有空白(包括换行、缩进空格)原封不动输出到最终HTML里,循环代码前后的换行和缩进就变成了之间的多余换行。以下是两种无需修剪变量换行的解决办法:
方法1:压缩模板内的代码结构
直接把循环的EJS标签和元素写在同一行,消除模板里的多余空白:
<thead> <th class="yellow-field"></th> <% blockUnitDetail.UnitArr.forEach(unit=>{ %><th class="yellow-field"><%= unit %></th><% }) %> </thead>
渲染后的HTML里,元素会紧密排列,不会出现多余换行。
方法2:使用EJS的空白修剪标签
用<%_和_%>标签包裹循环逻辑,这两个标签会自动修剪标签左右两侧的空白(包括换行),且不会影响变量内容的输出:
<thead> <th class="yellow-field"></th> <%_ blockUnitDetail.UnitArr.forEach(unit=>{ _%> <th class="yellow-field"><%= unit %></th> <%_ }) _%> </thead>
这种方法既能保留模板代码的可读性,又能避免输出多余空白。
内容的提问来源于stack exchange,提问作者Evan
相关产品推荐
相关产品推荐

