Probleme mit getElementsByName – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self Probleme mit getElementsByName Sat, 01 Dec 07 16:51:04 Z https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186848#m1186848 https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186848#m1186848 <p>Moin zusammen,</p> <p>ich habe ein Problem wo ich etwas Hilfe benötige.</p> <p>Auf einer HTML-Seite, die mit PHP erzeugt wird, befinden sich eine unbekannte Anzahl von Tabellenzeilen. Allen Zeilen habe ich den gleichen Namen gegeben, z.B. so:</p> <p><tr name="zeile"></p> <p>Nun möchte ich per Javascript die Style-Eigenschaften aller Zeilen, die den Namen "zeile" haben, verändern.</p> <p>So sieht mein Script aus:</p> <p>var Anzahl = document.getElementsByName('zeile').length;<br>   for (var i=0; i<Anzahl; i++) {<br>     document.getElementsByName('zeile')[i].style.display = 'block' }</p> <p>Das funktioniert aber nicht. Die entsrechenden Kapitel in SELFHTML helfen mir auch nicht weiter.</p> <p>Als erstes funktioniert die Eigenschaft .length nicht. Die gibt mir immer 0 zurück.</p> <p>Sezte ich die Variable Anzahl manuell auf den richtigen Wert, klappt trotzdem die Zuweisung des Style-Attributes nicht. Ich erhalte die Fehlermeldung "'document.getElementsByName(...)[...].style' ist NULL oder kein Objekt"</p> <p>Danke für Eure Hilfe.</p> <p>Gruß, André</p> Probleme mit getElementsByName Sat, 01 Dec 07 17:05:06 Z https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186851#m1186851 https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186851#m1186851 <p>Lieber André,</p> <blockquote> <p>var Anzahl = document.getElementsByName('zeile').length;<br>   for (var i=0; i<Anzahl; i++) {<br>     document.getElementsByName('zeile')[i].style.display = 'block' }</p> </blockquote> <p>das ist nicht gut. Besser so:</p> <pre><code class="block language-javascript"><span class="token keyword">var</span> elemente <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementsByName</span><span class="token punctuation">(</span><span class="token string">"zeile"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">var</span> anzahl <span class="token operator">=</span> elemente<span class="token punctuation">.</span>length<span class="token punctuation">;</span> <span class="token comment">// Diese Zeile ist allerdings überflüssig! </span> <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">var</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator"><</span> elemente<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> elemente<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">.</span>style<span class="token punctuation">.</span>display <span class="token operator">=</span> <span class="token string">"block"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <blockquote> <p>Als erstes funktioniert die Eigenschaft .length nicht. Die gibt mir immer 0 zurück.</p> </blockquote> <p>Dann gibt es offensichtlich keine Elemente, die in ihrem name-Attribut den Wert "zeile" stehen haben.</p> <p>Liebe Grüße aus <a href="http://www.ellwangen.de/" rel="nofollow noopener noreferrer">Ellwangen</a>,</p> <p>Felix Riesterer.</p> <div class="signature">-- <br> ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:) </div> Probleme mit getElementsByName Sat, 01 Dec 07 17:15:03 Z https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186850#m1186850 https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186850#m1186850 <p>Hallo André,</p> <blockquote> <p>Auf einer HTML-Seite, die mit PHP erzeugt wird, befinden sich eine unbekannte Anzahl von Tabellenzeilen. Allen Zeilen habe ich den gleichen Namen gegeben, z.B. so:<br> <tr name="zeile"></p> </blockquote> <p>tja, zu dumm, dass das name-Attribut für <a href="http://de.selfhtml.org/html/referenz/attribute.htm#tr" rel="nofollow noopener noreferrer">tr</a> nicht zulässig ist.</p> <blockquote> <p>Als erstes funktioniert die Eigenschaft .length nicht. Die gibt mir immer 0 zurück.</p> </blockquote> <p>Richtig, die name-Attribute, die nicht erlaubt sind, werden ignoriert. Übrig bleiben - du ahnst es schon - Null.</p> <p>Du wirst deinen Ansatz etwas verändern müssen. Streiche die name-Attribute in den tr-Elementen, gib stattdessen der entsprechenden Tabelle eine id und adressiere die Zeilen darin mit getElementsByTagName("tr"). Eventuell musst du sie noch anhand einer Klasse aussortieren, wenn nicht alle Zeilen in dieser Tabelle gleichartig sind.</p> <p>So long,<br>  Martin</p> <div class="signature">-- <br> Man soll den Tag nicht vor dem Abend loben.<br> Und den Mann nicht vor dem Morgen.<br>   (alte Volksweisheit) </div> Probleme mit getElementsByName Mon, 03 Dec 07 08:35:56 Z https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186849#m1186849 https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186849#m1186849 <p>Hi,</p> <blockquote> <p>Nun möchte ich per Javascript die Style-Eigenschaften aller Zeilen, die den Namen "zeile" haben, verändern.</p> </blockquote> <p>Dich könnte <a href="http://Coding.binon.net/Toggle" rel="nofollow noopener noreferrer">http://Coding.binon.net/Toggle</a> interessieren. Damit wird auch ...</p> <blockquote> <p>document.getElementsByName('zeile')[i].style.display = 'block' }</p> </blockquote> <p>... dieser Fehler vermieden.</p> <p>Gruß, Cybaer</p> <div class="signature">-- <br> Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"! </div> Probleme mit getElementsByName Sun, 02 Dec 07 10:04:45 Z https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186852#m1186852 https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186852#m1186852 <p>Hallo Felix,</p> <blockquote> <p>das ist nicht gut. Besser so:</p> </blockquote> <blockquote> <pre><code class="block language-javascript"></code></pre> </blockquote> <p>var elemente = document.getElementsByName("zeile");</p> <blockquote> <p>var anzahl = elemente.length; // Diese Zeile ist allerdings überflüssig!</p> <p>for (var i = 0; i < elemente.length; i++) {<br>     elemente[i].style.display = "block";<br> }</p> </blockquote> <pre><code class="block"> Das wird nach meiner Erfahrung zumindest im IE6 und darunter immer noch nicht funktionieren, wenn die entsprechende Display-Eigenschaft anfangs auf "none" steht. Der IE(<7) muss Tabellenzeilen erst einmal sichtbar rendern, dann kann man sie anschließend auch auf `display:none`{:.language-css} stellen und wieder zurück, indem man ihr diese Display-Eigenschaft durch Wegnehmen oder Setzen eines entsprechenden Klassennamens bzw. einer Untereigenschaft des Style-Objektes (leere Zeichenkette) wieder entzieht. `display:block`{:.language-css} ist da mit Rücksicht auf vernünftige Browser sowieso keine gute Idee, da Tabellenzellen dort ja von Hause aus `display:table-row`{:.language-css} haben und nicht `display:block`{:.language-css}. Gruß Gernot -- [super me](http://community.de.selfhtml.org/my/visitenkarten/view.php?key=46) </code></pre>