Enkel nybörjarproblem med javascript

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Göteborg
  • 2005-01-13 16:24

En enkel dum fråga om JS: Jag vill läsa in ett antal bilder med namn i serie och tänkte att det skulle gå att göra med en "for"-sats istället för att skriva en rad för varje (då antalet bilder kan variera. I exemplet nere är det 9 bilder)

for(i = 1; i < 10; i++){
document.write("image" + i + " = new Image; image" + i + ".src = 'images\/bild" + i + ".jpg';");
};

Felet med min kod är att "document.write" skriver raden på hemsidan i stället för att tolkas som ett JS-kommando. Det borde således vara någonting annat där. Det där borde vara busenkelt men jag letar och letar och hittar ingenting.
Kan nån vänlig själ leda mig in på det rätta spåret?

  • Medlem
  • Gävle
  • 2005-01-13 16:57
my_images = new Array();
for(i = 0; i < 10; i++){
my_images[i] = new Image();
my_images[i].src = 'images/bild' + i + '.jpg';
}
  • Medlem
  • Göteborg
  • 2005-01-13 21:40
Ursprungligen av tjogin:
my_images = new Array();
for(i = 0; i < 10; i++){
my_images[i] = new Image();
my_images[i].src = 'images/bild' + i + '.jpg';
}

Ja, tack tjogin. Det är ju givetvis smidigare att stoppa allting i en vektor än att skapa en konstgjord serie med variabler med numrerade namn...

Annars funderade jag om det var "script.document.write(bla bla bla)" som hade varit en fungerande variant?

  • Medlem
  • Gävle
  • 2005-01-13 22:32
Ursprungligen av pichia:

Annars funderade jag om det var "script.document.write(bla bla bla)" som hade varit en fungerande variant?

Njae, document.write är aldrig rätt. Så här kan man annars göra, om man vill ha en variabel för varje bild (men jag skulle nog föredra en vektor):

for(i = 0; i < 10; i++){
eval("my_image_" + i + " = new Image()");
eval("my_image_" + i + ".src = 'images/bild" + i + ".jpg'");
}
1
Bevaka tråden