IndexOf() und Switch/Case
Mssmar
- javascript
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
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
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.
[...]
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
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
Moin!
[...] Anschließend kannst Du entweder die Informationen aus einem Array auslesen
Den Vorschlag kännte die Lösung sein.
Danke und Gruß
Messmar