Hallo zusammen,
ich bin relativ neu in JS und habe folgendes Problem. Ich will in einer Funktion eine Schleife durchlaufen. Allerdings bricht die gesamte Funktion bereits ab, sobald er das erste Mal die Bedingung abfragt. Hier der Funktionscode:
function changeFilter(){
var ownerFilter = document.getElementById("ownerFilter").value;
var statusFilter = document.getElementById("statusFilter").value;
var milestoneFilter = document.getElementById("milestoneFilter").value;
var rowID = 1;
while(document.getElementsByName("del"+rowID)[0]){
var hoursField = document.getElementsByName("hour"+rowID)[0];
if(hoursField != null && hoursField == ""){
var currentTask = document.getElementsByName("task_id"+rowID)[0].value;
changeTask(currentTask,rowID);
}
rowID++;
}
}
Der Teil in der while-Schleife ist eigentlich irrelevant(denke ich zumindest), da nie in die Schleife hinein gegangen wird. Ich hab das mit FindBugs debugt. In der Fehlerkonsole des Firefox wird auch nichts angezeigt. Nachdem er an die Zeile kommt, wo die Schleife beginnt, kehrt er aus der Funktion zurück. Ich habe natürlich auch überprüft, ob er überhaupt ein Element mit dem Namen "del1" findet. Das tut er allerdings, was auch zu erwarten war.
Ich habe zum Debuggen auch schon die while-Schleife mit einer for-Schleife ausgetauscht, die solange läuft, bis rowID einen bestimmten Wert hat, aber da war es das gleiche Problem. Erstaunlicherweise hat es funktioniert, wenn ich nach der Schleife noch etwas eingefügt habe. In meinem Beispiel hab ich einfach rowID ein weiteres Mal inkrementiert.
Allerdings finde ich das unschön, da so einen unnützen Code zu haben. Die Funktion sollte nach der Schleife einfach beendet werden. Es sind keine weiteren Zuweisungen oder Methoden-Aufrufe nötig. Außerdem will ich halt auch verstehen, warum das Problem überhaupt auftritt.
Vielen Dank im Voraus,
Slapshot