Julian von Mendel: Fehler gefunden; Noch ein paar Kleinigkeiten:

Beitrag lesen

Hallo,

vielen Dank ihr beiden! Der Fehler lag in der add()-Funktion. Ich hab erst den Zähler erhöht, und dann das entsprechende Objekt sichtbar gemacht. Da der Zähler aber bei 1 gestartet hat, war er dann auf 2, das 2. Objekt hat aber die ID suche_1. Dadurch wurde suche_1 ausgelassen, und es gab seltsame Effekte. D. h. ein simples Tauschen der Reihenfolge dieser zwei Befehle in add() und es geht.

Das mit dem return habe ich geändert.

hossa. Bist Du sicher, dass Deine Struktur günstig gewählt ist?
nein, bin ich nicht. Aber ich bin mir nicht sicher, ob es um genau die gewünschte Aufgabenstellung zu erfüllen, eine wesentlich bessere Möglichkeit gibt.

wenn Du uns etwas mehr über Dein Projekt erzählst, könne wir Dir dabei vielleicht helfen. Auf den ersten Blick fiele mir ein <ol> o.ä. ein.

Ich möchte eine Suchfunktion, mit bis zu 20 Suchregeln. Jede Regel soll aus drei Objekten bestehen:
* einer Select-box, um das zu durchsuchende Feld anzugeben (z. B. "Name", "Datum", etc.)
* einer Select-box, um zwischen "ist, "enthält", "ist nicht" und "enthält nicht" auszuwählen
* einem Textfeld
Anfangs soll jedoch nur eine Regel angezeigt werden, weitere sollen sich mit Plus und Minus ein- oder ausblenden lassen. Die drei Objekte habe ich deshalb mittels eines divs gruppiert. Das Ganze in eine Liste zu packen ist sicher sauberer.

Wo hast Du FALSE deklariert?
Nirgens. Ich wusste nicht, dass es das nicht standardmäßig in Javascript gibt.

Nun, das merkst Du spätestens daran, dass es in einem Browser nicht funktionierst. Womit entwickelst Du denn, dass das Script nicht abgebrochen wurde?

Opera 8.0 Beta 3, Linux. Es hat eine Fehlermeldung in der Javascriptkonsole ausgegeben.

document.getElementById("suche_"+anzahl).style.display = "block";
Ohne Prüfung auf Objekt- und Methodenexistenzen?
Was genau muss ich da prüfen?

a) Ob die Methode document.getElementById bekannt ist, und b) ob ihre Verwendung ein Ergebnis liefert.

b) ist sicher sinnvoll, a) in einem Intranet, wo die verwendeten Browser klar sind, eher nicht, oder liege ich da falsch?

Das die divs alle existieren, weiß ich sicher.

Du weiß sicher, dass 20 <div>s existieren. Weißt Du aber auch, ob dasjenige Element existiert, welches Du da abfragst? Nein, denn Du kannst es nicht wissen, weil Du nicht einmal weißt, welches es überhaupt ist. Du weißt nur, wie die Abfrage generiert wird.

Wenn ich weiß, dass der Zähler immer zwischen 0 und 19 liegt, und die IDs auch alle da sind, dann passt doch alles?!

Schöne Grüße
Julian

--
"Real programmers can write assembly code in any language." - Larry Wall