循环创建列表项和按钮的一些数据。我需要传递按钮id的项目,但我不知道如何串联连接。
<% for(var i=0; i < data.length; i++) {%>
<li><%= data[i].name + " " + data[i].species%> <button onclick="deleteAnimal(data[i]._id)" type="button"> Delete </button></li>
<% } %>
如何获取deleteAnimal
函数来解释实际的id值?
现在我得到的错误是data is not defined
答案 0 :(得分:0)
使用<%=
代码:
<% for(var i=0; i < data.length; i++) { %>
<li><%= data[i].name + " " + data[i].species %><button onclick="deleteAnimal(<%= data[i]._id %>)" type="button"> Delete </button></li>
<% } %>
var data = [{ _id: 1 }, { _id: 2 }];
for (var i = 0; i < data.length; i++) {
console.log(ejs.render('<button onclick="deleteAnimal(<%= data[i]._id %>)" type="button"> Delete </button>', {
data: data
}));
}
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://github.com/mde/ejs/releases/download/v2.5.5/ejs.min.js"></script>
答案 1 :(得分:0)
您没有正确传递ejs变量。您将数据作为普通的js变量传递。
使用<%=data[i]._id %>
传递给deleteAnimal()函数。
<% for(var i=0; i < data.length; i++) {%> <li><%= data[i].name + " " + data[i].species%> <button onclick="deleteAnimal(<%=data[i]._id %>)" type="button"> Delete </button></li> <% } %>