You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

一行内使用两个EJS标签报错,如何在if判断中传入id值?

解决EJS中if判断使用传入id的问题

你的猜测没错,问题就是在EJS脚本标签内嵌套了输出标签导致的解析错误。EJS的<% %>是脚本执行块,里面直接写JavaScript代码就行,不需要再用<%= %>来输出变量。

正确写法

直接在if条件里使用传入的id变量,注意用严格相等运算符===避免类型匹配问题:

<% if (id === 0) { %>
  <!-- 这里写当id为0时要渲染的内容 -->
<% } %>

为什么原来的代码报错

你之前的代码<% if ( <%= id %> = 0 ) { %>犯了两个错:

  1. 在<% %>脚本块里嵌套了<%= %>输出标签,EJS解析器会把<%= id %>当成普通文本处理,导致脚本块的闭合标签匹配混乱,触发"找不到匹配的闭合标签"错误。
  2. 用了赋值运算符=而不是比较运算符==/===,即使标签没问题,逻辑也会出错。

完整示例

如果要根据id值渲染不同内容,可以这么写:

<div>
  <% if (id === 0) { %>
    <p>当前ID是0,显示专属内容</p>
  <% } else { %>
    <p>当前ID是<%= id %>,显示通用内容</p>
  <% } %>
</div>

内容的提问来源于stack exchange,提问作者Shafay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:10:37