Hallo,
ich habe eine Variable adfname, die mir den Suchbegriff liefert mit dem ich Schritt für Schritt ein Array durchsuche:
for ( var i = 0; i < liste.length; i++ )
{
if ( liste[i].indexOf( adfname ) != -1 )
{
document.write(liste[i]);
}
}
nur liefert mir das ganze nichts zurück, obwohl die Variable adfname nicht leer ist >>und<< das array liste 100%ig den Inhalt der Variablen adfname enthält!
Hab's mal nachgebaut, weil ich das einfach nicht glauben konnte ;-)
<html>
<head>
</head>
<body>
<script language="JavaScript">
<!--
liste = new Array("abc","def","ghiAdF)IceWjkl","mnop");
adfname = "AdF)IceW";
for ( var i = 0; i < liste.length; i++ )
{
if ( liste[i].indexOf( adfname ) != -1 )
{
document.write(liste[i]);
}
}
//-->
</script>
</body>
</html>
Funktioniert bei mir einwandfrei unter IE6 und NC4.
Liefert (wie erwartet) folgende Ausgabe: ghiAdF)IceWjkl
[...]
Daher gehe ich von aus, dass indexOf keine Variablennamen verarbeiten kann.
Das kann eigentlich nicht sein. Ein Variablenname als Parameter einer Funktion bewirkt, dass der Wert der Variablen in der Funktion verwendet wird. Eher ist es umgekehrt möglich: in manchen Programmiersprachen gibt es Funktionen, die Variablenparameter *brauchen*. Aber dass Konstantenparameter benötigt werden, habe ich noch nie gesehen.
Poste mal den Quelltext der Seite, der Fehler muss irgendwo anders liegen.
Robert
http://www.designauswahl.here.de
mit kostenlosem Webseiten-Generator ROBE.dit
[more than a HTMLE.dit]