0

変数を作成し、実際の変数名の末尾にIDを追加する方法はありますか?

新しいGaugeオブジェクトを作成するために使用される「gauge」という変数があります。

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

変数にIDを追加したいので、次のようになります。

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

これは、これらのオブジェクトをいくつか作成していて、それぞれに特定のIDがすでにあるためです。可能であれば、この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)と言い、他のすべてのオブジェクトを無視して、最後のオブジェクトのみを設定します...

4

3 に答える 3

3

あなたができる

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

ただし、一般的には、マップとして機能する配列またはオブジェクトを使用することをお勧めします。

var gauges = {};
gauges[id] = new Gauge(target).setOptions(opts);
于 2012-11-24T16:46:07.810 に答える
1

次のように、配列を使用してみませんか。

var gauge = []; //this needs be declared at global scope
gauge[id] = new Gauge(target).setOptions(opts);
于 2012-11-24T16:46:56.717 に答える
1

考えられる解決策はほとんどありません。

  1. eval()を使用する-遅いもの
  2. キー/値配列を使用する-最良の解決策
  3. オブジェクトを作成する-これも良いオプションですが、ある程度のプレーニングが必要です

あなたの場合、オプション2が最適です。

ここでより多くの情報を見つけることができます。

または例:

 var counter = 1;
 eval("var btn" + counter + "=123;");
 alert(btn1);
于 2012-11-24T16:50:27.350 に答える