2017-09-26 4 views
-1

に私はこのようなものにするためにしようとしている:は変数

for (var i = 1; i <= va; i++) { 
    var "v" + i + "x" = document.getElementById("v" + i + "x"); 
    var "v" + i + "y" = document.getElementById("v" + i + "y"); 
    var "v" + i + "r" = document.getElementById("v" + i + "r"); 
} 

をしかし、私はそれを正しく行う方法を知りません。

+0

あなたがやりたいコードをさらに追加してください。 –

+3

あなたは正確に何をしようとしていますか?動的変数名?あなたがやっていることをやめ、代わりに配列を使用してください。 – Teemu

+0

はい変数を自動的に生成しようとしているTeeemu –

答えて

3

動的変数は一般的には良い方法ではありません。あなたはそれらを避けるべきです。

console.log(obj["v1r"]); // Node with id v1r reference 
console.log(obj["v5x"]); // Node with id v5x reference 
+0

どのようにしてオブジェクトを使用することができますか?アラートを作成したいのですが、アラート(v1x)を書きますか?と警告(v25x); ?あなたのAwnserにコンソールログが出力されるので、 ""私は最後に.valueを忘れていました-_-私はごめんなさい –

+0

@OfficielFreaks、コンソールログの例はDOM内のその要素への参照を出力します。 'alert(obj [" v1r "]。value)' –

+0

nvmがそれを見つけました –

0

方が良いarraysを使用したいように見えます:

var obj = {}; 

for (var i = 1; i <= va; i++) { 

    obj["v" + i + "x"] = document.getElementById("v" + i + "x"); 
    obj["v" + i + "y"] = document.getElementById("v" + i + "y"); 
    obj["v" + i + "r"] = document.getElementById("v" + i + "r"); 

} 

その後、あなたのような要素にアクセスすることができますより良い解決策はこれのようにそれらを含むことになり、オブジェクトを作成することになります

var elements = []; // init to an empty array 
for (var i = 1; i <= va; i++) { 
    elements[i] = []; // each array entry is itself an array 
    elements[i]['x'] = document.getElementById("v" + i + "x"); 
    elements[i]['y'] = document.getElementById("v" + i + "y"); 
    elements[i]['r'] = document.getElementById("v" + i + "r"); 
} 

その後、あなたの値を取得するために、適切なインデックスを使用します。

console.log(elements[1]['x']);