【发布时间】:2020-03-06 02:22:50
【问题描述】:
我正在测试以下代码,它使用从我的 node.js 脚本传递到 .ejs 文件的数组。我似乎在循环中访问单个数组元素时遇到问题。除此之外,其他数组方法似乎可以正常工作,例如 .length 似乎返回了一个正确的值。该错误表示无法访问数组元素索引位置。错误消息是“_count is not defined”...我在这里做错了什么?
我的 node.js:
var test_up = [{pix: "Post 1", name: "Nica"}, {pix: "Post 2", name: "Danielle"}, {pix: "Post 3", name: "Maricar"}, {pix: "Post 4", name: "Peter"}, {pix: "Post 5", name: "Sampson"}, {pix: "Post 6", name: "Cleo"}];
res.render('index_bootx', {test_list: test_up});
EJS 文件中的 Javascript 以及导致问题的代码:
function initialize() {
var _count = 0;
var _limits = <%= test_list.length %>; //THIS SEEMS FUNCTIONAL...
var _tally = 0;
if (<%= test_list.length %> > 20) {_limits = 20;} //NO ERROR HERE...
for (_count = 0; _count < _limits; _count++) {
//**CREATE CONTENT HERE...
var _item = document.createElement("div");
_item.setAttribute("class", "lineups");
_item.setAttribute("id", "member_" + _count);
document.getElementById("row_" + _tally).appendChild(_item);
var _name = document.createElement("h2");
label = document.createTextNode(<% test_list[_count] %>); //PROBLEM HERE! '_count is not defined'
_name.appendChild(label);
lineups.appendChild(_name);
//**
} //for loop
}
在传递给 .ejs 文件的数组中选择元素的正确语法是什么...?提前谢谢你。
我已经修改了函数的末尾以包含一个“JSON.stringify”命令,如下所示:
var test = <%- JSON.stringify(test_list) %>;
document.getElementById("demo").innerHTML = test;
...但是“演示”的结果只是一堆“对象”...但是正确的数字:
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
为什么我在应用 JSON.stringify 方法后在这里看到的是“对象”引用而不是实际的名称字符串?
【问题讨论】:
标签: arrays node.js element ejs