web-dev-qa-db-ja.com

JavaScriptの動的変数名

わかりましたので、ユーザーがクリックするたびに変数を作成し、クリックするたびに新しい変数が追加されるようにします。私は現在jqueryとjavascriptを使用していますが、サーバー側では実行できません。これはブラウザで実行する必要があります。

newCount = document.getElementById('hello').innerHTML;
    $('.hello').click(function(){
        //set count fast enumeration
        newCount++;
        var hello + newCount = '<p>Hello World</p>';
    }); 

そのため、変数をhello1、hello2、hello3、hello4などにする必要があります。

9
Cody Weaver

それはブラケット表記でのみ可能です。つまり、変数を何かにアタッチする必要があります。
グローバルスコープはウィンドウになるため、window['hello' + newCount]、しかし、グローバルな名前空間をランダムなプロパティの束で汚染することは良い考えのように聞こえないので、オブジェクトを使用するほうが良いようです

var vars = {};
var newCount = parseInt($('#hello').html(), 10);

$('.hello').click(function(){
    newCount++;
    vars['hello' + newCount] = '<p>Hello World</p>';
}); 

alert( vars['hello1'] );

[〜#〜] fiddle [〜#〜]

32
adeneo

JavaScriptには(ご存知のように)動的変数を作成できる2つの方法があります。

eval Function
window object
eval:

var pageNumber = 1;
eval("var text" + pageNumber + "=123;");
alert(text1);
window object:

var pageNumber = 1;
window["text" + pageNumber] = 123;
alert(window["text" + pageNumber]);

詳細情報 javascriptで動的変数を宣言して使用するにはどうすればよいですか?

2
Muhammad Irfan

windowを使用できます

var window['hello' + newCount ] = '<p>Hello World</p>';

同様に..

newCount = document.getElementById('hello').innerHTML;
    $('.hello').click(function(){
        //set count fast enumeration
        newCount++;
        var window['hello' + newCount ] = '<p>Hello World</p>';
        alert(window['hello' + newCount ]);
    }); 
1
chriz

単純な配列を使用して変数を保存します。この場合、インデックスnのオブジェクトは変数nなどになります。

1
TGH

最も簡単な方法

var types = {};

for(var i=1; i<=3; i++){
types["ashish"+i] = 'The value of dynamic variable, val';
}

console.log(types);

あなたはそれをテストすることができます

jsfiddle

0
Ashish Gaur
var newCount = 0;
$('#btn').click(function(){

    newCount++;
    $('#hello').html('hello' + newCount);
}); 

jsfiddle

0
Jay M