创建一个根据ID号命名的变量?

时间:2012-11-24 16:44:38

标签: javascript jquery variables

有没有办法创建变量,并在实际变量名的末尾添加ID?

我有一个名为'gauge'的变量,用于创建一个新的Gauge对象:

var gauge = new Gauge(target).setOptions(opts);

我想在变量中添加一个ID,如下所示:

var gauge+id = new Gauge(target).setOptions(opts);

这是因为我正在创建许多这些对象,并且每个对象都有一个特定的ID,如果可能的话我想附加到量规对象上?

这个函数的所有代码都在下面,如果它能让你更好地了解我需要做什么:

    function go(id, votes)
{

var val = $('#votes_'+id).text();

var target = document.getElementById('foo_'+id); // your canvas element

var gauge = new Gauge(target).setOptions(opts); // create sexy gauge!
gauge.maxValue = 100; // set max gauge value
gauge.animationSpeed = 20; // set animation speed (32 is default value)
var a=votes+0.5;
gauge.set(val); // set actual value
}

我的主要问题出现在最后一行。它表示gauge.set(val),它只设置最后一个对象,忽略所有其他对象......

3 个答案:

答案 0 :(得分:3)

你可以做到

window['gauge'+id] = new Gauge(target).setOptions(opts);

但使用数组或充当地图的对象通常会更好:

var gauges = {};
gauges[id] = new Gauge(target).setOptions(opts);

答案 1 :(得分:1)

为什么不直接使用数组:

var gauge = []; //this needs be declared at global scope
gauge[id] = new Gauge(target).setOptions(opts);

答案 2 :(得分:1)

您的解决方案很少。

  1. 使用eval() - 慢一个
  2. 使用key / val数组 - 最佳解决方案
  3. 创建一个对象 - 也是一个不错的选择,但它需要一些计划
  4. 在你的情况下,选项2是最好的。

    Here您可以找到更多信息。

    或者一个例子:

     var counter = 1;
     eval("var btn" + counter + "=123;");
     alert(btn1);