在每个()内创建var

时间:2014-01-14 10:25:46

标签: javascript jquery html each var

我有一个包含一些数字的数组:

var bullet = [ 0, 39, 42, 89, 115 ];

并创建了每个循环

$.each(bullet, function( index, value ) {

});

现在我想创建一个变量,索引作为每个项目名称的一部分。 像这样:

var bullet + index = document.getElementById("bullet_" + index);

看起来应该是这样的:

var bullet0 = document.getElementById("bullet_0");
var bullet1 = document.getElementById("bullet_1");

等等......

但我的代码不起作用 - 它始终是sais 未捕获的SyntaxError:意外的标识符

3 个答案:

答案 0 :(得分:6)

您无法创建动态变量名称。但是,您可以通过创建包装器对象并将可能的变量指定为该对象的属性来创建动态键:

var bullets = {};

$.each(bullet, function( index, value ) {
    bullets[ index ] = ( document.getElementById( 'bullet_' + index ) );
});

更好的是,您可以使用数组(因为键是数字的):

var bullets = [];

$.each(bullet, function( index, value ) {
    bullets.push( document.getElementById( 'bullet_' + index ) );
});

在任何一种情况下,而不是您建议的访问方法

bullet0;
bullet1;

您可以按如下方式访问元素:

bullet[ 0 ];
bullet[ 1 ];

答案 1 :(得分:3)

您可能正在寻找的是jQuery.map()而不是jQuery.each()

var bullets = $.map(bullet, function(value, index) {
    return document.getElementById('bullet_' + index);
});

答案 2 :(得分:-1)

使用underscorejs #map http://underscorejs.org/#map

_.map([1,2,3,4], function(index) { 
   return document.getElementById('bullet_' + index);
});