如何在EJS forEach循环中运行JQuery代码?我试图从通过Node.js获取的mongoDB文件中读取Express作为引擎。对于每个项目,我想创建一个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代码。无论我做什么,它都不会产生结果。它似乎只是用纯文本。
答案 0 :(得分:1)
脚本执行时,ul projUL可能不在DOM中。如果您仍然需要在不使用模板的情况下将某些数据写入HTML,则可以尝试使用jQuery ready事件。首先使用脚本添加数据服务器端,然后在创建UL后添加它。
//this will be global or use your own scope.
window.user_projects = <%= data[0].user_projects %>;
$(document).ready(function (){
var $list = $('#projUL');
window.user_projects.forEach(function () {
$list.append('<li><%= project.project_name %></li>');
});
});