Abbruch bei nicht vorhandenem id-Attribut
hotti
- javascript
hi,
für mein eigens entwickeltes kleines "Framework" verwende ich eine Serialisierungsfunktion, die serverseitige Objekte in einen ASCII-String umwandelt und als Ajax-Response sendet. Der UA-seitige Einbau ist dann innehalb der callback-Funktion ganz einfach:
for(var attr in hash) document.getElementById(attr).innerHTML = hash[attr];
wobei "hash" ein JS-Objekt ist, welches aus der Response erstellt wird. Wenn jedoch die Response keys enthält, für die es im DOM keine entsprechende id gibt, bricht der Browser (FF) die weitere Verarbeitung ab, ich muss also dafür sorgen, dass exact die richtigen key=value in der Response gesendet werden oder je Zuweisung eine Codezeile schreiben und auf die Schleife verzichten.
Meine Frage nun, nur interessehalber (obwohl der obenstehende Kram in den Griff zu bekommen ist mit etwas mehr Aufwand):
Gibt es eine Möglichkeit, dem Browser zu sagen, dass er im Fall einer nicht vorhandenen id die Schleife nicht abbrechen soll (ignore nicht vorhandene id)?
Hotti
Gibt es eine Möglichkeit, dem Browser zu sagen, dass er im Fall einer nicht vorhandenen id die Schleife nicht abbrechen soll (ignore nicht vorhandene id)?
Du musst einfach den Rückgabewert der Funktion getElementById prüfen, ist das Element nicht vorhanden ist der null.
for(var attr in hash) {
var o = document.getElementById(attr);
if(o) o.innerHTML = hash[attr];
}
Struppi.
Hi,
Du musst einfach den Rückgabewert der Funktion getElementById prüfen, ist das Element nicht vorhanden ist der null.
for(var attr in hash) {
var o = document.getElementById(attr);
if(o) o.innerHTML = hash[attr];
}
Danke dir!!!! (Obwohl: da hätte ich aber auch selbst draufkommen können, ich Depp, die Fehlerkonsole sagt ja auch irgendwas von 'null' oder so)
Hotti
--
Auf die Mainzelmännchen ist Verlass.