Avatar billede painz Nybegynder
13. november 2000 - 16:12 Der er 13 kommentarer og
1 løsning

Hvordan sætter man resultatet af en eval() lig med noget?

Hvordan sætter man resultatet af en eval() lig med noget?

eval(\'Count\' + C) = 0 ;

Det må man ikke, men hvad gør man så..
Avatar billede sone Nybegynder
13. november 2000 - 16:15 #1
Du putter hele linien ind i en streng som evalueres:

  eval(\'count = \'+variabel+\' + 5);
Avatar billede sone Nybegynder
13. november 2000 - 16:15 #2
...der mangler jo lige et \':

  eval(\'count = \'+variabel+\' + 5\');
Avatar billede melgaard Nybegynder
13. november 2000 - 16:16 #3
Hejsa!

nField = eval(\'Count\' + C);
nField.value = 0;

... does that work?

/melgaard
Avatar billede nixen Nybegynder
13. november 2000 - 16:16 #4
sone>> nixen, sådan her:
eval(\'Count\'+C+\'=0\');
Avatar billede el_gnu Nybegynder
13. november 2000 - 16:16 #5
sone => mon ikke du mener

eval(\'count = \'+variabel+\' + 5\');
Avatar billede nixen Nybegynder
13. november 2000 - 16:17 #6
damn, 7 sekunder for sent :)
meldgaard>> Ja, det gør det, men der er ingen grund til at bygge et objekt for sig - eval() er rigeligt langsom selv ;-)
Avatar billede jumper Nybegynder
13. november 2000 - 16:17 #7
window[\"Count\" + C] = 0;

/Thor
Avatar billede el_gnu Nybegynder
13. november 2000 - 16:19 #8
funktioner der, som eval(), returnerer en værdi, kan bruges i statements, som f.eks. en tildeling.
Avatar billede jumper Nybegynder
13. november 2000 - 16:19 #9
Ovenstående kaldes array notation og er præcist hvad man bruger til dynamiske objekt referencer. Jeg går ud fra at du vil sætte en dynamisk bestemt variabel til at indeholde 0 (f.eks.), hvilket dette gør.

Hvis C indeholde 5, ville variablen Count5 blive sat til 0.

Det virker helt fint fordi alle variabler og funktioner (ja faktisk alle objekter) kan slåes op som properties på Global objektet, der i tilfældet med browseren er window objektet.

/Thor
Avatar billede painz Nybegynder
13. november 2000 - 19:31 #10
Hej igen.. Og tak for den fede respons..

Jupmer du er nok den der er tættest på, fordi indholdet af variablen skal være et tal og ikke en streng..

Men når jeg forsøger at lægge 1 til virker det ikke..

alert(window[\'Count\' + C]); // indeholder tallet 0
window[\"Count\" + C] + 1 ; // 0 + 1 = 1
alert(window[\'Count\' + C]); // indeholder stadig tallet 0

Hvad gør jeg galt???

PainZ
Avatar billede painz Nybegynder
13. november 2000 - 19:36 #11
Hvis i vil se hvad det hele skal bruges til så ser her:

http://www.eksperten.dk/spm/33181

PainZ
Avatar billede painz Nybegynder
13. november 2000 - 19:45 #12
SÅDAN..

window[\"Count\" + C] = window[\"Count\" + C] + 1 ;

Men Jumper eller anden, hvorfor virker:
window[\"Count\" + C] = window[\"Count\" + C] + 1 ;
og ikke:
window[\"Count\" + C] + 1 ;

PainZ
Avatar billede el_gnu Nybegynder
13. november 2000 - 21:12 #13
endnu kortere:

window[\"Count\" + C]++;

Dette

window[\"Count\" + C] + 1 ;

virker ikke fordi du ikke tilskriver værdien af udtrykket til nogen variabel!
Avatar billede jumper Nybegynder
14. november 2000 - 04:25 #14
painz, dit nederste eksempel

window[\"Count\" + C] + 1 ;

er det samme som at skrive

Count5 + 1;

(Hvis C indeholdt 5). Ovenstående lægger jo ikke en til variablen.

window[\"Count\" + C]++;
eller
window[\"Count\" + ] += 1; // eller 2, eller 3

/Thor
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester