2

On (document).ready im は、特定の親要素内に要素を動的に生成したいと考えています。それらを「キャンドル」と呼びましょう。

各「ろうそく」には、index() に応じて、backgroundImage と色の異なるプロパティが必要です。

ページを作成した後、これらの属性はインターフェイスを介して変更できる必要があります。したがって、「ろうそく」のプロパティを互いに独立して保存することが重要です。

そのため、「キャンドル」ごとにオブジェクトを生成して、個々のプロパティを保存し、編集可能にすると便利だと思いました。

    var candleAmount = 3;
for (var i=1; i <= candleAmount; i++) {
    $("#container #candles").append("<li><img src=''></img></li>");
    var Candle+i = [ "background":"+i+", "color":" - random - (ignore)" ]
    };

(「Candle+i」以外のコードの失敗は気にしないでください。私が解決します。)

編集:わかりました、これまでありがとう。私は自分自身を十分に明確にしていないかもしれません。これは、より縮小された例です。

$("ul#candles li").each( function(i) {
  candle+i = i+" Anything";
  });

alert(candle4);

子オブジェクトの量に応じて、変数の量を作成したいと思います。正しい構文は何でしょうか、またはありませんか?

ありがとうございました

4

2 に答える 2

1

それらを配列に入れて、インデックスを介してアクセスするだけです。結果はおそらくあなたにとって同じであり、それらをスコープに浮かべるよりもはるかに優れています

于 2012-12-05T15:12:56.807 に答える
0

では、インデックスを使用してオブジェクト名を生成する方法はありますか?

はい、JavaScript では、グローバル変数は global-object のプロパティとして定義されます。(関数内では、変数は Activation オブジェクトのプロパティとして定義されます。)グローバル オブジェクトは、window(ブラウザ アプリケーションの場合) または だけで参照できますthis

また、すべてのオブジェクトは関連付けられているため、プロパティに好きな名前を付けることができます。したがって、グローバル変数を設定することは、プロパティをグローバル オブジェクトに設定することと同じです。

var foo = "bar"; === this["foo"] = "bar";

名前に動的部分を追加するための小さなステップです。

for(var i=0;i<10;i++) {
 this['candle' + i] = i;  
}

alert(candle7);

特定のコードの場合:

$("ul#candles li").each( function(i) {
  window["candle" + i] = i+" Anything";
  });

alert(candle4);
于 2012-12-05T15:23:59.360 に答える