Mssmar: IndexOf() und Switch/Case

Hallo,

kann man das Ergebniss einer indexOf() Methode per Switch/Case abfragen?

ich will SRC eines Bildes, das dynamisch generiert wird, abfragen und entsprechend einen erläuterden Text in einem Div ausgeben.

z.B

  
if (document.getElementById('ImageId').indexOf('xxx.jpg') != -1)  
  
alert('Hier ist das Bil für Bla Bla Bla');  
  
if (document.getElementById('ImageId').indexOf('yyy.jpg') != -1)  
  
alert('Hier ist das Bild für yyy yyy yyy');  
  

Das Beispiel hier ist nur mit alert()
Ich möchte es aber dann wie gesagt in Div ausgeben. Das ist aber nicht Problem, das mache ich dann schon.

Da die indexOf() Methode nur -1, oder Zitat:"an wie vielter Stelle das Zeichen in der Zeichenkette steht" Ich wusste nicht, wie ich es mit Switch/case machen kann.

Vielen Dank und Gruß
Messmar

  1. Hi,

    kann man das Ergebniss einer indexOf() Methode per Switch/Case abfragen?

    ja. Vorausgesetzt Du willst das Ergebnis eines(!) indexOf()-Aufrufes erfragen.

    if (document.getElementById('ImageId').indexOf('xxx.jpg') != -1)
    if (document.getElementById('ImageId').indexOf('yyy.jpg') != -1)

    Das sind unterschiedliche Basiswerte. switch/case erfordert _einen_ Basiswert.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. ich will SRC eines Bildes, das dynamisch generiert wird, abfragen und entsprechend einen erläuterden Text in einem Div ausgeben.

    die Eigenschaft gibt es nicht.
    JS ist casesensitive  heißt .src

    z.B
    if (document.getElementById('ImageId').indexOf('xxx.jpg') != -1)

    Wo greifst du hier auf diese Eigenschaft zu?

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. [...]

      die Eigenschaft gibt es nicht.

      [...]

      Wo greifst du hier auf diese Eigenschaft zu?

      Upss, du hast Recht. Es muss heißen:

      document.geElementById('ImageId').src.indexOf('xxx.jpg')

      Danke
      Messmar

  3. Moin!

    Den Index Wert brauchst Du ja gar nicht. Wenn ich das richtig sehe, steht am Ende Deines Dateinamens die Information, die Du benötigst.

    Da gibt es nun vielfältige Methoden, damit umzugehen.

    Zunächst würde ich die Informationen eindeutig abgrenzen, z.B. mit "-": "bildname-info.jpg".

    Dann holst Du Dir den lastIndexOf für das '-' und den für den '.'. Der Teil dazwischen ist dann Deine info. Anschließend kannst Du entweder die Informationen aus einem Array auslesen

      
    var textZumAnzeigen= new Array();  
    textZumAnzeigen[ 'info1' ]= 'info 1';  
    textZumAnzeigen[ 'info2' ]= 'info 2';  
    textZumAnzeigen[ 'info3' ]= 'info 3';  
      
    function zeigAn(...) {  
     // ... Hier die oben beschrieben info berechnung  
     alert( textZumAnzeigen[ info ] );  
      //...  
    }  
    
    

    oder mit switch arbeiten

      
    switch (info) {  
    case 'info1':  
      // mach was für info 1...  
      break;  
    case 'info2':  
      // mach was für info 2...  
      break;  
    case 'info3':  
      // mach was für info 3...  
      break;  
    default:  
      // Standardaktion  
      break;  
    }  
    
    

    -- Skeeve

    1. Moin!

      [...] Anschließend kannst Du entweder die Informationen aus einem Array auslesen

      Den Vorschlag kännte die Lösung sein.

      Danke und Gruß
      Messmar