【发布时间】:2015-06-02 20:05:50
【问题描述】:
如何在 EJS forEach 循环中运行 JQuery 代码?我正在尝试从以 Express 作为引擎的 Node.js 获取的 mongoDB 文档中读取。对于每个项目,我想创建一个 li 项目,项目名称作为列表项文本。目前,这就是我所拥有的:
<% data[0].user_projects.forEach(function(project) { %>
$('#projUL').append('<li><%= project.project_name %></li>');
<% }); %>
但是,当我转到该页面时,它不会引发任何错误;但在源代码中它显示了以下脚本,但它从不呈现到页面:
<script>
$('#projUL').append('<li>Express Project 1</li>');
</script>
如果我删除脚本标签,它只会插入相同代码的纯文本。所以,我无法弄清楚如何在 EJS forEach 循环中获取 jQuery 代码。无论我做什么,它都不会呈现结果。它似乎只接受纯文本。
【问题讨论】:
-
呃,你不知道吗?使用 ejs templates 发出 html,而不是生成 jquery 代码!
-
所以没有办法完成我想要做的事情? EJS只能驱逐纯html?
-
当然可以(可能在您实例化
<ul id=projUL>后,您的脚本就可以工作),但我的意思是您不应该这样做。我看不出有什么理由不在这里使用纯 html。 -
我正在尝试将这些 li 连接到另一个动态创建的 div 中的 li,并且我需要使用计数器变量来连接它们,因为我不知道有多少进来。我在页面稍后实例化了
ul,但它拒绝运行 jquery。 -
无论如何,imo 你应该先尝试通过服务器端编程解决这个问题,然后再向它抛出 jQuery。顺便说一句:"instantiated later in the page" is very much the key here.