返回

巧用 EJS 条件语句:处理字符和连字符数组的妙招

javascript

巧用 EJS 条件语句,轻松应对循环中字符和连字符

问题引述

在 EJS 模板中,需要在一个由字符和连字符组成的数组中区分两类元素。通过 if 语句,根据条件输出不同的 HTML 元素,达到区分显示的目的。

解决方案

步骤指南

  1. 使用 forEach 方法遍历数组。
  2. 在每次迭代中,使用 if 语句检查当前项是否为连字符("-")。
  3. 根据条件输出不同的 HTML 元素。
  4. 输出当前项的值。
  5. 关闭 HTML 元素。

代码示例

<% quote.forEach(letter => { %>
    <% if (letter == "-") { %>
        <span class="quote-letter hyphen">-</span>
    <% } else { %>
        <span class="quote-letter"><%= letter %></span>
    <% } %>
<% }) %>

解释

在 EJS 中,"==" 运算符用于比较变量。它比直接比较变量更安全,因为它可以自动将变量转换为适当的数据类型。

完整示例

<% quote.forEach(letter => { %>
    <% if (letter == "-") { %>
        <span class="quote-letter hyphen">-</span>
    <% } else { %>
        <span class="quote-letter"><%= letter %></span>
    <% } %>
<% }) %>

输出

<span class="quote-letter">H</span>
<span class="quote-letter">e</span>
<span class="quote-letter">l</span>
<span class="quote-letter">l</span>
<span class="quote-letter">o</span>
<span class="quote-letter hyphen">-</span>
<span class="quote-letter">w</span>
<span class="quote-letter">o</span>
<span class="quote-letter">r</span>
<span class="quote-letter">l</span>
<span class="quote-letter">d</span>

提示

  • 请确保将数组变量(如 quote)传递给 EJS 模板。
  • 可以在 HTML 元素中使用适当的类或内联样式来设置不同的样式。

常见问题解答

Q1:使用 == 运算符与直接比较变量有何不同?

A: == 运算符可以自动将变量转换为适当的数据类型,从而避免类型不匹配导致的错误。

Q2:如何将当前项的值输出到 HTML 中?

A: 使用 EJS 表达式语法:<%= letter %>

Q3:如何关闭 HTML 元素?

A: 使用 EJS 结束标签语法:</span>

Q4:如何遍历嵌套数组?

A: 可以使用嵌套的 forEach 循环或 EJS #each 块。

Q5:如何根据条件添加或删除 HTML 元素?

A: 使用 EJS 的 ifelse 语句来根据条件输出不同的 HTML 元素。