Nano: Verstecken von Spans: Problem bei Referenzierung mit Array

Hallo zusammen

Ich versuche gerade auf einer Seite Kommentarzeilen automatisch auszublenden, so dass sie mit einem Button wieder angezeigt werden können (um Platz zu sparen).

Ich generiere den Javascript Code über PHP und schreibe die ids der Kommentarzeilen in den Javascript Bereich. Allerdings erhalte ich immer die Fehlermeldung es sei ein Objekt erforderlich. Hier mal der Code:

function hiderows() {
var ids = new Array();
ids[0] = 'commentrow' + 55;
ids[1] = 'commentrow' + 56;
ids[2] = 'commentrow' + 57;
ids[3] = 'commentrow' + 58;
ids[4] = 'commentrow' + 59;
ids[5] = 'commentrow' + 60;
ids[6] = 'commentrow' + 61;
ids[7] = 'commentrow' + 62;
ids[8] = 'commentrow' + 63;

for(i=1;i <= ids.length;i++) {  
	document.getElementById(ids[i]).style.display = 'none';  
}  

}

Die Array Werte stimmen soweit, wenn ich document.getElementById('commentrow55').style.display = 'none'; schreibe, wird die entsprechende Zeile auch unsichtbar gemacht. Allerdings scheint dass nicht mehr zu klappen wenn die Geschichte dynamisch mit einer for Schleife ausgeführt werden soll.

Vielen Dank schonmal
Nano

  1. Hi,

    Hallo zusammen

    Ich versuche gerade auf einer Seite Kommentarzeilen automatisch auszublenden, so dass sie mit einem Button wieder angezeigt werden können (um Platz zu sparen).

    Ich generiere den Javascript Code über PHP und schreibe die ids der Kommentarzeilen in den Javascript Bereich. Allerdings erhalte ich immer die Fehlermeldung es sei ein Objekt erforderlich. Hier mal der Code:

    ids[0] = 'commentrow' + 55;
    for(i=1;i <= ids.length;i++) {

    Fällt Dir was auf?
    Beim Setzen der Werte fängst Du bei Index 0 an. Deine Schleife beginnt bei Index 1.

    Und da die Schleife über so viele Elemente läuft, wie das Array Elemente enthält (nämlich 9), wird zuletzt wegen i <= ids.length auf Index 9 zugegriffen. Aber Index 8 ist der letzte, für den ein Wert gesetzt wurde.

    for(i=0; i < ids.length; i++)
    sollte zum Erfolg führen.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  2. Hallo nochmal

    Konnte das Problem lösen, lag daran dass ein ungültiger Wert aus der Datenbank selektiert wurde, und somit eine nicht vorhandene id generiert wurde.

    Danke trotzdem!