897 Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Warum wird bei untenstehender Funktion der zweite Befehl nicht ausgeführt, wenn der erste erfolglos war (z.B. weil id1 nicht existiert)?

function test() {
document.getElementById('id1').id ='id1-neu';
alert('debug');
document.getElementById('id2').id ='id2-neu';
}

Offenbar wird die Funktion beendet und ich weiß nicht, wie ich das unterbinden kann (habe es bereits mit || versucht).

Oder muss ich eine Abfrage einbauen, ob id1 existiert?

Vielen Dank!
Gruß

3 Antworten

0 Punkte
Beantwortet von
wenn id1 nicht existiert bricht das Script mit einer Fehlermeldung ab.

In guten Browsern wird diese Fehlermeldung angezeigt, im Firefox zB. im Menü Extras/Fehlerkonsole

Diese solltest du beim Entwerfen von Scripten immer zu Rate ziehen!

Unterbinden kannst du es folgendermaßen

function test() {
var die_id=document.getElementById('id1').id:
if (die_id){
die_id.id='id1-neu';
}
...
}


Immer schön brav fragen, ob es das Element wirklich gibt, bevor du mit seine Methoden oder Eigenschaften arbeitest!
0 Punkte
Beantwortet von
sorry, Kopierfehler, es muss heißen:

var die_id=document.getElementById('id1');
0 Punkte
Beantwortet von
Super, danke schön! Es funktioniert.
...