2014-11-08 52 views
0

假设我有一组变量name1,name2,name3 ... etc,我在div中写出这些变量。 现在,我可以把它打印出来使用#{名1}#{名2}#{NAME3}等,但有没有可能将一个数字和一个变量连接成Jade的变量名称

- for(var i = 0; i<3; i++) { div #{"name" + i} }

所以我想输出到一个做到这一点的for循环中玉是:

div #{name1} 
div #{name2} 
div #{name3} 

这样的事情,以便打印出前3个元素....希望我有所帮助。当我这样做时,我在Jade上方的方式似乎认为我只是将一个字符串放入div而不是变量。如果有问题,我使用Express.JS作为我的应用程序。 TY

+1

为什么不干脆让称为数组'name'迭代是不是使独立的变量? – mscdex 2014-11-09 01:24:17

+0

相关http://stackoverflow.com/questions/5187530/variable-variables-in-javascript – laggingreflex 2014-11-09 03:33:20

回答

0

玉似乎认为我只是把一个串入格

因为你是谁!

当您说“...而不是变量”时,您的真正含义是对其值的引用。这是for循环擅长的。但"name" + i创建一个字符串,并且变量不被引用为字符串 - 有一个重要的异常:对象属性。

你有两个选择:

var names = [name1, name2, name3]; 
for (var i = 0; i < 3; i = i + 1) { 
    div #{names[i]} 
} 

或...

var names = { 
    name1: name1, 
    name2: name2, 
    name3: name3 
}; 
for (var k in names) { 
    if (Object.prototype.hasOwnProperty.call(names, k)) { 
     div #{names[k]} 
    } 
} 
相关问题