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

EJS模板使用forEach循环时报Unexpected token ')'编译错误求解

EJS渲染Todo List列表项语法错误修复

问题场景

  • 开发Todo List项目过程中使用EJS模板引擎做页面渲染,编写循环渲染待办项的代码后,运行触发EJS编译报错。

原错误代码

<%= kindOfItems.forEach( function (item) { %>
        <div class = "item">
            <input type="checkbox">
            <p>
            <%= item.name %>
            </p>
        </div>
     <%=  }) %>  

报错信息

SyntaxError: Unexpected token ')' in D:\web development\todoList\Todo-List---EJS-master\Todo-List---EJS-master\views\list.ejs while compiling ejs

错误根因

  • EJS标签混用:<%= %>的作用是计算内部JS表达式的值,转义后输出到HTML结构中,仅适合用来输出变量、表达式结果,不能包裹无返回值的流程控制代码。
  • 原代码中forEach循环的起始声明、末尾的闭合})都错误使用了<%= %>输出标签,EJS编译时会把这部分代码识别为待输出的表达式,遇到流程控制的闭合括号时无法解析,直接抛出语法错误。

修复后代码

<% kindOfItems.forEach( function (item) { %>
        <div class = "item">
            <input type="checkbox">
            <p>
            <%= item.name %>
            </p>
        </div>
     <% }) %>  

修复说明

  • 仅需要输出到页面的内容(比如待办项名称item.name)保留<%= %>输出标签。
  • 负责执行循环逻辑、不向页面输出内容的代码段(forEach开头、末尾闭合括号),替换为无输出的JS执行标签<% %>即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:36:23