2014-11-08 87 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]} 
    } 
} 
相關問題