tag:forum.selfhtml.org,2005:/selfAbbruch bei nicht vorhandenem id-Attribut – SELFHTML-Forum2011-01-13T15:43:33Zhttps://forum.selfhtml.org/self/2011/jan/13/abbruch-bei-nicht-vorhandenem-id-attribut/1489616?srt=yes#m1489616hottihttp://rolfrost.de2011-01-13T15:09:03Z2011-01-13T15:09:03ZAbbruch 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#m1489617Struppistruebig@gmx.nethttp://javascript.jstruebig.de2011-01-13T15:25:16Z2011-01-13T15:25:16ZAbbruch 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#m1489618hottihttp://rolfrost.de2011-01-13T15:43:33Z2011-01-13T15:43:33ZAbbruch 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>