Alexander: String in Object umwandeln

Hallo,

ich habe ein Problem mit JavaScript:
Ich möchte dynamisch Grafiken vertauchen, also einen Hover-Effekt erstellen. Es soll also, wenn man über eine Grafik mit der Maus fährt, eine andere Grafik geladen werden.

An sich ist dies ja nicht schwer, allerdings habe ich folgendes Problem dabei: Ich kann die Grafik nicht über Ihre Object-Nr. (etwa: window.document.images[xx]) ansprechen, da ich die Stelle der Grafik im Dokument nicht kenne (das Script soll allgemein von mehreren Dokumenten genutzt werden, wo vor der eigentlich zu vertauchenden Grafik unterschiedlich viele andere Grafiken liegen können). Also will ich es per Namen ansprechen (etwa: window.document.bild1).

Und hier fangen meine Probleme an: Wenn ich eine Funktion aufrufe, und der den Namen des Bildes übergebe, wird aus meinem Grafik-Oject ein String.

Beispiel:

function bild(bildname)
{
  'window.document.' + bildname + '.src' = "bild.gif";
}

Ich muß also mein String wieder in ein gültiges Object umwandeln, nur weiß ich nicht wie. Mein Ansatz:

function bilder(bild)
{
 this.bild = bild;
}

function bild(bildname)
{
 pic = "window.document." + bildname + ".src"
 pic = new bilder(pic);
 pic.src = bildname + ".gif";
}

Das haut aber leider auch nicht hin. Ich erhalte zwar keine Fehlermeldung, aber die rafik wird auch nicht vertauscht.

Wer kann mir helfen???

Jetzt schon vielen, vielen Dank für jede (konstruktive) Antwort.

Alexander

  1. Hallo Alexander

    An sich ist dies ja nicht schwer, allerdings habe ich folgendes Problem dabei: Ich kann die Grafik nicht über Ihre Object-Nr. (etwa: window.document.images[xx]) ansprechen, da ich die Stelle der Grafik im Dokument nicht kenne (das Script soll allgemein von mehreren Dokumenten genutzt werden, wo vor der eigentlich zu vertauchenden Grafik unterschiedlich viele andere Grafiken liegen können). Also will ich es per Namen ansprechen (etwa: window.document.bild1).

    Hier bist du schon fast an der Lösung des Problemes. Objekte sind in JS auch assoziative Arrays. Also kannst du das Bild auch so ansprechen.

    Für dich hieße das, window.document.images["bild1"]

    function bild(bildname)
    {
      'window.document.' + bildname + '.src' = "bild.gif";
    }

    Da es sich um eine Variable handelt, einfach

    window.document.images[bildname].src="bild.gif";

    Viele Grüße

    Antje

    1. Hallo Antje,

      ich weiß ja nicht, ob das Forum der richtige Platz dafür ist, aber ich will Dir einfach nur mal für diesen Tipp danken.

      Irgendwie war die Lsöung doch zu simpel. :)

      Also, gute Nacht...

      Alexander