web-dev-qa-db-fra.com

Noms de variables dynamiques JavaScript

Ok, je veux donc créer des variables lorsqu'un utilisateur clique sur le code et chaque clic ajoute une nouvelle variable. J'utilise actuellement jquery et javascript. Je ne peux pas le faire côté serveur, cela doit être fait dans le navigateur.

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

donc je veux que les variables soient bonjour1, bonjour2, bonjour3, bonjour4, etc.

9
Cody Weaver

Vous ne pouvez le faire qu'avec la notation entre crochets, ce qui signifie que vous devez attacher les variables à quelque chose.
La portée globale serait la fenêtre, donc ce serait window['hello' + newCount], mais polluer l’espace de noms global avec un tas de propriétés aléatoires ne semble pas une bonne idée, utiliser un objet semble donc préférable

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

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

alert( vars['hello1'] );

FIDDLE

30
adeneo

En JavaScript (comme je le sais), il existe deux manières de créer des variables dynamiques:

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

pour plus d'informations .__ Comment puis-je déclarer et utiliser des variables dynamiques en javascript?

2
Muhammad Irfan

vous pouvez utiliser window

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

également..

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

Je voudrais juste utiliser un tableau simple pour stocker les variables. Alors l'objet avec l'indice n serait la variable n etc.

1
TGH

Moyen le plus simple 

var types = {};

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

console.log (types);

vous pouvez le tester 

jsfiddle

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

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

jsfiddle

0
Jay M