11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Le debugger firefox me renvoie l'erreur suivante :
invalid assignment left-hand side
eval("indexLineE_"+n) += 1;

Pourriez vous m'indiquer la syntaxe correcte pour
cette ligne de code ?
eval("indexLineE_"+n) += 1;

Merci. Smiley smile
Modifié par <wared> (19 Feb 2007 - 12:05)
Bonjour.

Tout simplement mettre le "+=1" dans eval car celui-ci interprète le code, non ?
eval("indexLineE_"+n"+= 1");


Nota : sache aussi que eval est déconseillé, si ta variable est globale tu peux utiliser
window["indexLineE_"+n]
enfin je crois que c'est çà.
Hello,
<wared> a écrit :
Bonjour,
Le debugger firefox me renvoie l'erreur suivante :
invalid assignment left-hand side
eval("indexLineE_"+n) += 1;
Solutions sales :
eval("indexLineE_" + n + "+=1;");
window["indexLineE_" + n] += 1; // Si la variable en question est globale
Solution propre et plus rapide (en temps d'exécution) : utiliser un tableau au lieu de passer par eval, qui est déconseillé dans la plupart des cas en JavaScript :
var indesLines = [0, 0, 0];
var i = 2; // Valeur à déterminer
indexLines[ i] += 1;
<edit>Grillé. Smiley smile </edit>
Modifié par Julien Royer (16 Feb 2007 - 11:37)
J'ai finalement contourné le problème en testant n avec if
ex :
if(n==1)
indexLineE_1 += 1;
if(n==2)
indexLineE_2 += 1;
Désolé pour le dérangement... Smiley confused