tag:forum.selfhtml.org,2005:/self Abbruch bei nicht vorhandenem id-Attribut – SELFHTML-Forum 2011-01-13T15:43:33Z https://forum.selfhtml.org/self/2011/jan/13/abbruch-bei-nicht-vorhandenem-id-attribut/1489616?srt=yes#m1489616 hotti http://rolfrost.de 2011-01-13T15:09:03Z 2011-01-13T15:09:03Z Abbruch bei nicht vorhandenem id-Attribut <p>hi,</p> <p>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:</p> <pre><code class="block language-javascript"> <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">var</span> attr <span class="token keyword">in</span> hash<span class="token punctuation">)</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span>attr<span class="token punctuation">)</span><span class="token punctuation">.</span>innerHTML <span class="token operator">=</span> hash<span class="token punctuation">[</span>attr<span class="token punctuation">]</span><span class="token punctuation">;</span> </code></pre> <p>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.</p> <p>Meine Frage nun, nur interessehalber (obwohl der obenstehende Kram in den Griff zu bekommen ist mit etwas mehr Aufwand):</p> <p>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)?</p> <p>Hotti</p> <div class="signature">-- <br> Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein. </div> https://forum.selfhtml.org/self/2011/jan/13/abbruch-bei-nicht-vorhandenem-id-attribut/1489617?srt=yes#m1489617 Struppi struebig@gmx.net http://javascript.jstruebig.de 2011-01-13T15:25:16Z 2011-01-13T15:25:16Z Abbruch bei nicht vorhandenem id-Attribut <blockquote> <p>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)?</p> </blockquote> <p>Du musst einfach den Rückgabewert der Funktion getElementById prüfen, ist das Element nicht vorhanden ist der null.</p> <pre><code class="block language-javascript"><span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">var</span> attr <span class="token keyword">in</span> hash<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">var</span> o <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span>attr<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span><span class="token punctuation">(</span>o<span class="token punctuation">)</span> o<span class="token punctuation">.</span>innerHTML <span class="token operator">=</span> hash<span class="token punctuation">[</span>attr<span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Struppi.</p> https://forum.selfhtml.org/self/2011/jan/13/abbruch-bei-nicht-vorhandenem-id-attribut/1489618?srt=yes#m1489618 hotti http://rolfrost.de 2011-01-13T15:43:33Z 2011-01-13T15:43:33Z Abbruch bei nicht vorhandenem id-Attribut <p>Hi,</p> <blockquote> <p>Du musst einfach den Rückgabewert der Funktion getElementById prüfen, ist das Element nicht vorhanden ist der null.</p> <pre><code class="block language-javascript"></code></pre> </blockquote> <p>for(var attr in hash) {</p> <blockquote> <p>var o = document.getElementById(attr);<br> if(o) o.innerHTML = hash[attr];<br> }</p> </blockquote> <pre><code class="block"> 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. </code></pre>