如何在EJS文件中实现文本的换行输出?
解决EJS循环输出文本每行单独换行的问题
首先先修正你代码里的一个标签匹配错误:<p>Novel Title</h3> 应该改成 <h3>Novel Title</h3>(如果用作标题)或者 <p>Novel Title</p>,避免HTML结构异常。
针对每行文本单独换行的需求,有几种简单的实现方式:
方法1:每行添加<br>标签
直接在循环输出每个文本元素后追加<br>标签,HTML渲染时会自动换行:
<p> <% for( let index = 0; index < text.length; index++ ) { %> <%- text[index] %><br> <% } %> </p>
方法2:使用<pre>标签保留原始格式
<pre>标签会保留文本中的换行和空格,适合需要保留原始排版的场景。你可以用数组的join方法直接拼接换行符,比循环更简洁:
<pre> <%- text.join('\n') %> </pre>
如果需要在循环中处理额外逻辑,也可以手动添加换行符:
<pre> <% for( let index = 0; index < text.length; index++ ) { %> <%- text[index] %>\n <% } %> </pre>
方法3:通过CSS控制换行
给文本容器添加white-space: pre-line样式,这样文本中的换行符会被识别为换行,同时自动合并多余空格:
- 修改EJS代码,用
join拼接带换行的字符串:
<p class="novel-content"> <%- text.join('\n') %> </p>
- 添加对应CSS样式:
.novel-content { white-space: pre-line; }
内容的提问来源于stack exchange,提问作者BBB_TOAD
相关产品推荐
相关产品推荐

