tag:forum.selfhtml.org,2005:/selfProbleme mit getElementsByName – SELFHTML-Forum2007-12-03T08:35:56Zhttps://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186848#m1186848André2007-12-01T16:51:04Z2007-12-01T16:51:04ZProbleme mit getElementsByName<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>
https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186851#m1186851Felix RiestererFelix.Riesterer@gmx.nethttp://www.felix-riesterer.de/2007-12-01T17:05:06Z2007-12-01T17:05:06ZProbleme mit getElementsByName<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>
https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186850#m1186850Der Martinself@kennst.net2007-12-01T17:15:03Z2007-12-01T17:15:03ZProbleme mit getElementsByName<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>
https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186849#m1186849Cybaercybaer@binon.nethttp://Coding.binon.net2007-12-03T08:35:56Z2007-12-03T08:35:56ZProbleme mit getElementsByName<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>
https://forum.selfhtml.org/self/2007/dec/1/probleme-mit-getelementsbyname/1186852#m1186852Gernot Backgernotback@arcor.de2007-12-02T10:04:45Z2007-12-02T10:04:45ZProbleme mit getElementsByName<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>