Mathias Brodala: galleryimg="no" in javascript einbauen

Beitrag lesen

Hallo m.mietke.

var x = new Array("bild1.jpg","bild2.jpg","bild3.jpg","bild4.jpg","bild5.jpg","bild6.jpg");
var alt = new Array("Beschreibung1","Beschreibung2","Beschreibung3","Beschreibung4","Beschreibung5","Beschreibung6");

[…]

Da musst du bei Veränderungen höllisch aufpassen, dass beide x nicht mehr Elemente enthält als alt. Vielleicht wäre hier ein zweidimensionales Array besser.

Zweidimensionales Array sagt mir nichts, wie Du wohl schon ahnst, aber ich werde einfach gut aufpassen.

Was Gunnar eigentlich meinte, ist ein Objekt. Ein solches kannst du dir folgendermaßen anlegen und um Eigenschaften sowie Werte ergänzen:

var imgs = new Object();  
images['bild1.jpg'] = 'Beschreibung1';  
images['bild2.jpg'] = 'Beschreibung2';  
// You get the idea

Ich persönlich bevorzuge jedoch die Literalschreibweise, da kürzer und meiner Meinung nach auch übersichtlicher:

var imgs = {  
  'bild1' : 'Beschreibung1', // Eigenschaften mit Komma getrennt  
  'bild2' : 'Beschreibung1' // Letzte Eigenschaft ohne Komma  
}

Was ich mich aber die ganze Zeit frage ist, warum überhaupt so umständlich?

var x = new Array("bild1.jpg","bild2.jpg","bild3.jpg","bild4.jpg","bild5.jpg","bild6.jpg");

Die Redundanz in diesem Konstrukt ist unübersehbar und macht selbiges praktisch überflüssig:

var zaehler = 6;  
  
var zufall = Math.floor(Math.random()*zaehler);  
  
document.write('<img src="bild' + x[zufall] + '.jpg" alt="" width="250" height="250" title="">');

Oder mit Bildbeschreibungen:

var alt = ['Beschreibung1', 'Beschreibung2', 'Beschreibung3']; // Wiederum Literalschreibweise  
  
var zaehler = 6; // Oder ggf. alt.length, wenn *wirklich* ebenso viele Grafiken vorliegen  
  
var zufall = Math.floor(Math.random()*zaehler);  
  
document.write('<img src="bild' + x[zufall] + '.jpg" alt="' + alt[zufall] + '" width="250" height="250" title="">');

Einen schönen Donnerstag noch.

Gruß, Mathias

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]