2014-03-29 21 views
8

Ok, also möchte ich Variablen erstellen, wie ein Benutzer klickt warf den Code bei jedem Klick fügt eine neue Variable. Ich benutze derzeit jquery und javascript Ich kann es nicht tun Server-Seite Dies muss im Browser erfolgen.JavaScript dynamische Variablennamen

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

so möchte ich die Variablen hello1, hello2, hello3, hello4 sein usw.

+0

nicht "dynamische Variablennamen" anwenden. Verwenden Sie die entsprechende Map (einfaches Objekt) oder die Sequenz (Array). – user2864740

Antwort

27

Sie verwenden können kann das nur mit Klammernotation machen, was bedeutet, dass Sie die Variablen an etwas anhängen müssen.
Die globale Reichweite würde Fenster, so dass window['hello' + newCount] sein würde, aber mit einer Reihe von zufälligen Eigenschaften des globalen Namensraum verschmutzen klingt nicht wie eine gute Idee, so ein Objekt mit Hilfe scheint besser

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

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

alert(vars['hello1']); 

FIDDLE

0

Sie window

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

ebenfalls ..

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 ]); 
    }); 
+0

Warum -1 zu meiner Antwort? das wird auch wrk .. es ist nicht falsch – chriz

+0

Es ist falsch. Wenn Sie einen Downvote erhalten, sollten Sie sich vielleicht die Zeit nehmen, Ihren Code zu testen. –

2

In JavaScript (ich weiß) gibt es 2 Möglichkeiten, mit denen Sie dynamische Variablen erstellen:

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]); 

für mehr inforamtion How do i declare and use dynamic variables in javascript?

1

Ich würde einfach ein einfaches Array verwenden, um die Variablen zu speichern. Dann wird das Objekt mit dem Index n wäre Variable n etc ..

+0

+1 Ein Array macht mehr Sinn als ein einfaches Objekt. –

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

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

jsfiddle

0

einfachste Weise

var types = {}; 

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

console.log (Typen);

Sie können es testen auf

jsfiddle