Assonanzenheini: IF (document.images[0].src == array[x]) ?

Buongiorno i miei amici!

Ich habe ein Probläm mit Javascript.
Die IF-Abfrage will nicht richtig funktionieren!

Ich habe ein Array definiert, dass in diesem Fall auch array heißt.
In diesem Array habe ich insgesamt 5 Elemente, die jeweils eine Pfadangabe zu einem Bild enthalten.

Nun soll Folgendes passieren:
Wenn die src des Bildes mit der id="mitte" gleich IRGENDEINEM Element des Arrays "array" entspricht, dann soll die src des Bildes mit der id="unten" gleich dem nachfolgenden Element des Arrays gesetzt werden.
Also wenn jetzt praktisch <img id="mitte" src="array[3]"> ist, soll <img id="unten" src="array[4]"> sein ...
Oder wenn <img id="mitte" src="array[4]"> ist soll <img id="unten" src="array[3]"> sein. Versteht ihr wie ich das meine?

Umzusetzen versucht habe ich das so:
[code=javascript]
function fu()
{
var i;
for (i = 0; i <= 5; ++i) {
 if (document.images[mitte].src == array[i])
  {
  document.images[unten].src = array[i-1]
  }
 }
}
[/code]

In meinen Augen ist das alles richtig, aber nicht in den Augen meines Browsers. Der weigert sich strikt, dem Bild id="unten" die oben angegebene SRC zu verpassen.

P.S.: Die Funktion fu() wird beim Klick auf einen Link ausgeführt.

Wo ist der Fehler in meinem Script?
Wäre seeeeeeeeeeeeeeehr erfreut über Hilfe!

Gruß,
Assonanz

  1. Hi,
    vielleicht liegt es daran, dass array ein reserviertes Wort ist.
    Nenn dein Array mal anders.

    mfg
    Knusperklumpen

    1. Hallo!

      Habe das Array "verona" genannt.
      Geht auch nicht :/

      1. Hi

        function fu()
        {
        var i;
        for (i = 0; i <= 5; ++i) {
        if (document.images[mitte].src == array[i])
          {
          document.images[unten].src = array[i-1]
          }
        }
        }

        Was passieren kann wenn i = 0:
        -> document.images[unten].src = array[-1]
        Das dürfte nicht funktionieren.

        Ansonsten bräuchte man mehr input um weiterhelten zu können.

        mfg
        Knusperklumpen

        1. Hallo,

          Was passieren kann wenn i = 0:
          -> document.images[unten].src = array[-1]
          Das dürfte nicht funktionieren.
          Ansonsten bräuchte man mehr input um weiterhelfen zu können.

          [code=javascript]
          <script type="text/javascript">
          var bild = new Array();
          bild[0] = "DSC00873.jpg";
          bild[1] = "DSC00874.jpg";
          bild[2] = "DSC00875.jpg";
          bild[3] = "DSC00876.jpg";
          bild[4] = "DSC00877.jpg";
          bild[5] = "DSC00878.jpg";
          bild[6] = "DSC00879.jpg";
          bild[7] = "DSC00880.jpg";

          function fu()
          {
          var i;
          for (i = 1; i <= 7; ++i) {
           if (document.images[mitte].src == bild[i])
            {
            document.images[unten].src = bild[i-1]
            }
           }
          }
          </script>

          <body>
          <a><img id="oben" src=""></a><br>
          <a><img id="mitte" src=""></a><br>
          <a><img id="unten" src=""></a><br>
          <a href="#" onClick="fu();">Unten-Bild-Laden</a>
          </body>[/code]

          Da hast du mehr input^^
          Aber deine Vermutung, dass es an "falls i = 0 dann i - 1 = -1" liegt, hat sich leider nicht bestätigt.
          Wie du siehst, habe ich festgelegt, dass i nur Zahlen von 1-7 annehmen kann. Dadurch kann i nicht -1 werden.
          Sonst vielleicht noch ein Vorschlag?^^"
          Javascript is echt ein bisschen strange ..

          1. for (i = 1; i <= 7; ++i) {

            Warum benutzt du hier nicht eigenschaft length?
            for (i = 0; i < bild.length ; i++) {

            if (document.images[mitte].src == bild[i])

            Hast du dir mal angeschaut, was in .src steht?

            Javascript is echt ein bisschen strange ..

            Wieso?
            Bis jetzt sind es noch alles deine Fehler.

            Struppi.

            1. Habe jetzt bild.length eingesetzt. Funktioniert auch nicht.

              Die src vom <img id="mitte"> ist leer, weil ich durch eine andere Funktion vorher eine bestimmte src geladen habe, die einem Array-Element entspricht.
              Also die src ist nicht leer.

              Aber selbst wenn ich diese besagte Funktion deaktiviere und eine konkrete src bei <img id="mitte"> eingebe, geht es nicht.
              Sonst noch irgend eine Idee, wo Javascript - sorry, ich meine natürlich ich - einen Fehler gemacht haben könnte? ;-)

              1. Habe jetzt bild.length eingesetzt. Funktioniert auch nicht.

                Natürlich funktioniert das, du machst was falsch.

                Die src vom <img id="mitte"> ist leer, weil ich durch eine andere Funktion vorher eine bestimmte src geladen habe, die einem Array-Element entspricht.
                Also die src ist nicht leer.

                Hast du dir src mal anzeigen lassen?

                Struppi.

                1. So, Ich habe jetzt glaub ich alles so gemacht und verändert, wie ihr es gesagt habt .. und jetzt bin ich am ende mit meinem Latein.
                  Geht auf www.svkag.sv.funpic.de/gal/thumbs.html und dann werdet ihr mal die ganzen dateien einsehen können.
                  In meinen augen ist in dem script nämlich nix mehr falsch, aber seht selbst..

                  1. In meinen augen ist in dem script nämlich nix mehr falsch, aber seht selbst..

                    Dafür geht die Url nicht ;-)

                    1. Was denn, hat's euch so geschockt? :p
                      Oder findet ihr auch keinen Fehler?

                      gruß

                  2. Dann nimm die :P

                    http://svkag.sv.funpic.de/gal/thumbs.html

                    1. http://svkag.sv.funpic.de/gal/thumbs.html

                      Also ich wette du hast nicht den Tipp von mir ausprobiert und dir mal src anzeigen lassen?
                      for (i = 0; i < bild.length; ++i) {

                      alert(document.images['mitte'].src);
                      Das dürfte dir einiges klarer machen

                      document.images['unten'].src = bild[i-1]

                      und das geht immer noch nicht, da i bei null anfängt

                      Struppi.

          2. Hi

            Aber deine Vermutung, dass es an "falls i = 0 dann i - 1 = -1" liegt, hat sich leider nicht bestätigt.
            Wie du siehst, habe ich festgelegt, dass i nur Zahlen von 1-7 annehmen kann. Dadurch kann i nicht -1 werden.

            Nanana ... jetzt schummelst du aber!
            In deinem Ausgangsposting stand da noch
            for (i = 0; i <= 5; ++i) { ...

            Ansonsten füg hier mal 2 ' hinzu
            document.images[mitte]
            document.images[unten]
            und zwar so
            document.images['mitte']
            document.images['unten']
            Ansonsten denkt Javascript du meinst mit mitte und unten Variablen.

            mfg
            Knusperklumpen

            1. Nanana ... jetzt schummelst du aber!
              In deinem Ausgangsposting stand da noch
              for (i = 0; i <= 5; ++i) { ...

              und ncoh einfacher und flexibler geht's wenn er die Anzahl der Schleifen mit der Anzahl der Bilder vergleicht.

              for (i = 1; i < bilder.length; ++i) { ...

              Das hatte ich in meinem anderen posting vergessen, er muss natürlich bei eins anfangen, da in der Schleife auf bild[i-1] zugegriffen werden soll.

              Ansonsten füg hier mal 2 ' hinzu
              document.images[mitte]
              document.images[unten]
              und zwar so
              document.images['mitte']
              document.images['unten']

              Stimmt das hatte ich übersehen.

              Trotz allem wird dieser Vergleich meistens fehlschlagen:
               if (document.images['mitte'].src == bild[i])

              Was auch ganz leicht mit:
              alert (document.images['mitte'].src + '\n' + bild[i]);

              zu sehen ist.

              Struppi.