2013-10-16 94 views
0

需要一个适当的解决方案如何编写这个表达式。jQuery多个数组循环

var ary1 = ["","",""]; 
var ary2 = ["","",""]; 
var ary3 = ["","",""]; 
var ary4 = ["","",""]; 
var div; 
for(var i=1; i<5; i++){ 
    div += ("<p id='text'"+i+">"+(ary+i)[0]+"</p>"); 
} 

只是寻找一个更好的解决方案,使其工作。没有从ary1,ary2,ary3和ary4获得价值。

+1

'(ary + i)'抛出错误。 –

+0

这是一个非常常见的问题。我链接到一个最近类似的,但如果其他用户有更好的链接,不要犹豫,让他们... –

+0

它看起来像你试图做一些手动写出HTML。你如何告诉我们你想要做什么? – Codeman

回答

3

如果你想以这种方式引用不同的数组,将它们存储在一个对象中将是一个非常优雅的解决方案。

var arrayDictionary = { 
    ary1: ["","",""], 
    ary2: ["","",""], 
    ary3: ["","",""], 
    ary4: ["","",""] 
}; 
for(var i=1; i<5; i++){ 
    div += ("<p id='text'"+i+">"+ arrayDictionary["ary"+i][0]+"</p>"); 
} 
0
var ary1 = ["","",""]; 
var ary2 = ["","",""]; 
var ary3 = ["","",""]; 
var ary4 = ["","",""]; 
var div; 
for(var i=1; i<5; i++){ 
    div += ("<p id='text'"+i+">"+eval('ary'+i '[0]')+"</p>"); 
} 
+2

请谨慎使用'eval',因为它可能是危险的并且通常效率低下(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) – stinkycheeseman

+0

你能解释为什么它可能是危险的和低效的? –

+0

当然可以! [这里是一个简明的解释](http://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea) - [这里是解释它如何可以正确使用](http://www.nczonline.net/blog/2013/06/25/eval-isnt-evil-just-misunderstood/) - [在这里你可以阅读它是如何疯狂](http:///wingolog.org/archives/2012/01/12/javascript-eval-considered-crazy) – stinkycheeseman

0

尝试数组的数组:

ary = [ 
    ["","",""], 
    ["","",""], 
    ["","",""], 
    ["","",""] 
]; 

var div = ''; 
for (var i = 0, len = ary.length; i < len; i++) { 
    div += "<p id='text'" + i + ">" + ary[i][0] + "</p>"; 
} 
+0

我意识到你的指数将从1 - 4变为0 - 3。希望这不是什么大不了的事情。 – bozdoz

0

为什么不使用二维数组?

arr=[ary1,ary2,ary3,ary4,ary5]; 

for(var i=1; i<arr.legnth; i++){ 
    for (var j=1;j<arr[i].length;j++){ 
    div += ("<p id='text'"+j+">"+arr[i][j]+"</p>"); 
    } 
}