tag:forum.selfhtml.org,2005:/self Mehrere DIVs per JS ausblenden – SELFHTML-Forum 2008-07-02T12:54:04Z https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263315#m1263315 Sven 2008-07-01T11:57:12Z 2008-07-01T11:57:12Z Mehrere DIVs per JS ausblenden <p>Hallo ihr,</p> <p>ich möchte mehrere DIV-Elemente ausblenden, die allesamt den gleichen Namen haben. Also:</p> <p><div name="abc" ...></p> <p>Dafür habe ich folgendes versucht:</p> <p>function hidefieldsName(nname) {<br>  for(i=0; i<nname.length; i++) {<br>   document.getElementsByName(nname)[i].style.display = 'none';<br>  }<br> }</p> <p>hidefieldsId('abc');</p> <p>Es funktioniert zwar, die DIVs werden ausgeblendet. Dennoch meldet mir Firefox: "document.getElementsByName(nname)[i] is undefined"</p> <p>Kann mir jemand verraten, warum? Was ist verkehrt?</p> <p>Lg<br> Sven</p> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263330#m1263330 Hopsel 2008-07-01T12:15:31Z 2008-07-01T12:15:31Z Mehrere DIVs per JS ausblenden <p>Hi Sven!</p> <blockquote> <p>Kann mir jemand verraten, warum? Was ist verkehrt?</p> </blockquote> <p>nname.length</p> <p>Du meintest sicher document.getElementsByName(nname).length...<br> Tipp: Lege dir eine Variable an, in der du das Array, das getElementsByName zurückgibt speicherst.</p> <p>MfG H☼psel</p> <div class="signature">-- <br> "It's amazing I won. I was running against peace, prosperity, and incumbency."<br> George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001<br> <a href="http://community.de.selfhtml.org/fanprojekte/selfcode.htm" rel="nofollow noopener noreferrer">Selfcode</a>: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:) </div> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263318#m1263318 KurtZ 2008-07-01T12:19:12Z 2008-07-01T12:19:12Z Mehrere DIVs per JS ausblenden <p>Kurtz gegrüßt</p> <blockquote> <p>Kann mir jemand verraten, warum? Was ist verkehrt?</p> </blockquote> <p>FF geht wohl wie ich davon aus, das name analog zu id *einmalig* sein sollte.</p> <p>Ich würde deinen ansatz nicht wählen, ich weise bei sowas z.B. eine eigene css-class zu und suche alle Elemente die sie enthalten. Alternativ kannst du auch die class manipulieren, dasss könnte mit älteren Browsern problematisch werden.</p> <p>Grüße<br>  Kurt</p> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263316#m1263316 JürgenB juergen@berkemeier.eu http://www.berkemeier.eu 2008-07-01T13:02:16Z 2008-07-01T13:02:16Z Mehrere DIVs per JS ausblenden <p>Hallo Sven,</p> <blockquote> <p><div name="abc" ...></p> </blockquote> <p>nicht alle Elemente dürfen einen Namen haben. Nimm lieber eine ID</p> <blockquote> <p>function hidefieldsName(nname) {<br> for(i=0; i<nname.length; i++) {</p> </blockquote> <p>name ist ein String ("abc") mit der Länge 3!</p> <blockquote> <p>document.getElementsByName(nname)[i].style.display = 'none';</p> </blockquote> <p>und daher suchst du drei Elemente mit den Namen "abc"</p> <blockquote> <p>}<br> }</p> <p>hidefieldsId('abc');</p> </blockquote> <p>Gruß, Jürgen</p> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263317#m1263317 JürgenB juergen@berkemeier.eu http://www.berkemeier.eu 2008-07-01T13:03:20Z 2008-07-01T13:03:20Z Mehrere DIVs per JS ausblenden <blockquote> <p>name ist ein String ("abc") mit der Länge 3!</p> </blockquote> <p>sorry, soll nname heißen.</p> <p>Gruß, Jürgen</p> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263319#m1263319 KurtZ 2008-07-01T12:23:19Z 2008-07-01T12:23:19Z Mehrere DIVs per JS ausblenden <p>Kurtz gegrüßt</p> <p>ich relativiere mal was ich gesagt habe, wenn name eindeutig sein müsste würd bei getElementsByName kein plural stehen.</p> <p>Allerdings bleib ich skeptisch, da gabs mal Probleme...</p> <p>Grüße<br>  Kurt</p> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263320#m1263320 Hopsel 2008-07-01T13:03:22Z 2008-07-01T13:03:22Z Mehrere DIVs per JS ausblenden <p>Hi KurtZ!</p> <blockquote> <p>Allerdings bleib ich skeptisch, da gabs mal Probleme...</p> </blockquote> <p>Probleme bereitet dem Threadersteller die Tatsache, dass er aufgrund der Stringlänge der ID, die er übergibt, entscheidet, welcher Index auf das Array der Div-Elemente zugreift.<br> Er möchte aber anhand der Länge des Arrays die Obergrenze der For-Schleife festlegen.</p> <p>Dass der Firefox mit dieser Funktion Probleme haben sollte, bezweifle ich stark.</p> <p>MfG H☼psel</p> <div class="signature">-- <br> "It's amazing I won. I was running against peace, prosperity, and incumbency."<br> George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001<br> <a href="http://community.de.selfhtml.org/fanprojekte/selfcode.htm" rel="nofollow noopener noreferrer">Selfcode</a>: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:) </div> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263321#m1263321 KurtZ 2008-07-01T13:12:57Z 2008-07-01T13:12:57Z Mehrere DIVs per JS ausblenden <p>Kurtz gegrüßt</p> <blockquote> <p>Dass der Firefox mit dieser Funktion Probleme haben sollte, bezweifle ich stark.</p> </blockquote> <p>FF vielleicht nicht, aber ich halte eine Markierung der auszublenden Divs mit "name" für riskant. Irgendein IE-Bug-Neuron feuert da bei mir, aber ich bin zu faul zu recherchieren. Irgendwo werden name und id gleichgesetzt...</p> <p>Mit ID *muss* er eindeutig werden, ich nutze wie gesagt deswegen eine eigene class um wegzublenden Divs auszuzeichnen.</p> <p>Ich hab das mal vor ca. 2 Jahren so umständlich realisieren müssen, und für unnötige Workarounds bin ich eigentlich zu faul. ; )</p> <p>Grüße<br>  Kurt</p> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263328#m1263328 Hopsel 2008-07-01T13:15:49Z 2008-07-01T13:15:49Z Mehrere DIVs per JS ausblenden <p>Hi KurtZ!</p> <p>Man könnte ja auch mit getElementsByTagName arbeiten und den Namen überprüfen. Damit dürfte der IE keine Probleme haben.</p> <p>MfG H☼psel</p> <div class="signature">-- <br> "It's amazing I won. I was running against peace, prosperity, and incumbency."<br> George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001<br> <a href="http://community.de.selfhtml.org/fanprojekte/selfcode.htm" rel="nofollow noopener noreferrer">Selfcode</a>: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:) </div> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263322#m1263322 Cybaer cybaer@binon.net http://Coding.binon.net 2008-07-02T10:54:19Z 2008-07-02T10:54:19Z Mehrere DIVs per JS ausblenden <p>Hi,</p> <blockquote> <p>FF vielleicht nicht, aber ich halte eine Markierung der auszublenden Divs mit "name" für riskant.</p> </blockquote> <p>NAME ist bei DIV nicht erlaubt - alles weitere mithin "Zufall". Gleichwohl funktioniert es in den üblichen Browsern (auch wenn ich mich bestimmt nicht drauf verlassen würde). Bis auf Opera (zumindest bis 8.x - keine Ahnung, was der 9.x macht). Der verweigert sich!</p> <blockquote> <p>Irgendein IE-Bug-Neuron feuert da bei mir, aber ich bin zu faul zu recherchieren. Irgendwo werden name und id gleichgesetzt...</p> </blockquote> <p>Der IE kann mit getElementsByName() auch dann arbeiten, wenn NAME im Tag nicht erlaubt ist. Aber er benutzt für NAME und ID den selben Namespace (was logischerweise zu Fehlern führen kann). Wird erst mit IE 8 geändert.</p> <blockquote> <p>Mit ID *muss* er eindeutig werden, ich nutze wie gesagt deswegen eine eigene class um wegzublenden Divs auszuzeichnen.</p> </blockquote> <p>Ich benutze ein eigenes Attribut oder eine ID, mit identischem Anfang (und selektiere dann anhand dieses Anfangs).</p> <p>Gruß, Cybaer</p> <div class="signature">-- <br> Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.<br> (Jean-Jacques Rousseau, Philosoph u. Schriftsteller)<br> </div> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263323#m1263323 KurtZ 2008-07-02T11:25:20Z 2008-07-02T11:25:20Z Mehrere DIVs per JS ausblenden <p>Hi Cybaer,</p> <p>danke dass du meine Kritik unterfütterst!</p> <blockquote> <p>Ich benutze ein eigenes Attribut oder eine ID, mit identischem Anfang (und selektiere dann anhand dieses Anfangs).</p> </blockquote> <p>"ID mit identischem Anfang" ist ne interessante Idee und erlaubt dann verschiede CSS-Klassen zu nutzen... merk ich mir, Danke!!! : )</p> <p>"benutze ein eigenes Attribut" lässt bei mir Fragen offen, erlaubt das DOM sich neue Attributnamen zu definieren, oder sind die Mainstreambrowser so tolerant?</p> <p>Wahrscheinlich letzteres, weil die Browser aufwärtskompatibel zu eventuellen Erweiterungen des HTML-Standards bleiben wollen.</p> <p>Grüße<br>  Kurt</p> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263326#m1263326 KurtZ 2008-07-02T11:42:53Z 2008-07-02T11:42:53Z neue "Fantasie"-Attribute? <p>Kurtz gegrüßt</p> <blockquote> <p>"benutze ein eigenes Attribut" lässt bei mir Fragen offen, erlaubt das DOM sich neue Attributnamen zu definieren, oder sind die Mainstreambrowser so tolerant?</p> </blockquote> <p>Mal ein Selbstgespräch:</p> <p>Das Document Object Model wird das erlauben weil JS es fast immer erlaubt einem Objekt neue Attribute zuzuweisen, auch HTML-Objekten.</p> <p>Spiegelt sich das aber auch auf HTML-Parser-ebene wieder, dass man einem Tag neue Fantasieattribute zuweisen darf???</p> <p>Wahrscheinlich kann man es zumindest ungestraft. Oder?</p> <p>Grüße<br>  Kurt</p> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263324#m1263324 Cybaer cybaer@binon.net http://Coding.binon.net 2008-07-02T12:45:05Z 2008-07-02T12:45:05Z Mehrere DIVs per JS ausblenden <p>Hi,</p> <blockquote> <p>"ID mit identischem Anfang" ist ne interessante Idee und erlaubt dann verschiede CSS-Klassen zu nutzen...</p> </blockquote> <p>Versch. "CSS-Klassen" kann man aber auch so nutzen - falls ich dich richtig verstanden habe. Aber auch ich nutze HTML-Klassen (i.d.R.) lieber exklusiv für CSS und nicht für sonstige Dinge.</p> <blockquote> <p>"benutze ein eigenes Attribut" lässt bei mir Fragen offen, erlaubt das DOM sich neue Attributnamen zu definieren, oder sind die Mainstreambrowser so tolerant?</p> </blockquote> <p>Sind sie nicht nur, sie müssen es sogar sein.</p> <blockquote> <p>Wahrscheinlich letzteres, weil die Browser aufwärtskompatibel zu eventuellen Erweiterungen des HTML-Standards bleiben wollen.</p> </blockquote> <p>So ist es. Unbekannte Attribute sind seit dem Ur-HTML pflichtgemäß zu ignorieren, und mit HTML 5 wurde auch definiert, daß unbekannte Attribute auch in JS/DOM abzubilden sind.</p> <p>Es gibt aber, HTML 5 hin oder her, auch bislang keinen Browser, der damit ein Problem gehabt hätte - und nun ist es "offiziell".</p> <p>Gruß, Cybaer</p> <div class="signature">-- <br> Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.<br> (Jean-Jacques Rousseau, Philosoph u. Schriftsteller)<br> </div> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263325#m1263325 KurtZ 2008-07-02T12:54:04Z 2008-07-02T12:54:04Z Mehrere DIVs per JS ausblenden <p>Kurtz gegrüßt</p> <blockquote> <p>So ist es. Unbekannte Attribute sind seit dem Ur-HTML pflichtgemäß zu ignorieren, und mit HTML 5 wurde auch definiert, daß unbekannte Attribute auch in JS/DOM abzubilden sind.</p> <p>Es gibt aber, HTML 5 hin oder her, auch bislang keinen Browser, der damit ein Problem gehabt hätte - und nun ist es "offiziell".</p> </blockquote> <p>Danke, fachlich sehr hilfreich!!!  : )</p> <p>Grüße<br>  Kurt</p> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263327#m1263327 Cybaer cybaer@binon.net http://Coding.binon.net 2008-07-02T12:46:26Z 2008-07-02T12:46:26Z neue "Fantasie"-Attribute? <p>Hi,</p> <blockquote> <p>Spiegelt sich das aber auch auf HTML-Parser-ebene wieder, dass man einem Tag neue Fantasieattribute zuweisen darf???</p> </blockquote> <p>Ja, wenn der Parser da Probleme bereitet, ist es per definitionem kein HTML-Parser.</p> <p>Gruß, Cybaer</p> <div class="signature">-- <br> Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.<br> (Jean-Jacques Rousseau, Philosoph u. Schriftsteller)<br> </div> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263329#m1263329 KurtZ 2008-07-01T14:58:08Z 2008-07-01T14:58:08Z Mehrere DIVs per JS ausblenden <p>Hi H☼psel</p> <blockquote> <p>Man könnte ja auch mit getElementsByTagName arbeiten und den Namen überprüfen. Damit dürfte der IE keine Probleme haben.</p> </blockquote> <p>wie von JuergenB schon angedeutet ist name kein Universalattribut<br> <a href="http://de.selfhtml.org/html/referenz/attribute.htm#div" rel="nofollow noopener noreferrer">http://de.selfhtml.org/html/referenz/attribute.htm#div</a></p> <p>Man macht sich hier sonst von der Interpretationsfreiheit der Browser abhängig.</p> <p>Grüße<br>  Kurt</p> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263331#m1263331 Timo "God's Boss" Reitz godsboss@gmx.de http://www.godsboss.de/ 2008-07-01T18:17:50Z 2008-07-01T18:17:50Z Mehrere DIVs per JS ausblenden <blockquote> <p>Du meintest sicher document.getElementsByName(nname).length...<br> Tipp: Lege dir eine Variable an, in der du das Array, das getElementsByName zurückgibt speicherst.</p> </blockquote> <p><a href="http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-71555259" rel="nofollow noopener noreferrer">getElementsByName</a> liefert kein <a href="http://de.selfhtml.org/javascript/objekte/array.htm" rel="nofollow noopener noreferrer">Array</a> zurück, sondern eine <a href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-536297177" rel="nofollow noopener noreferrer">NodeList</a>. Zumindest sollte es so sein, der FF2 gibt anscheinend eine <a href="http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-75708506" rel="nofollow noopener noreferrer">HTMLCollection</a> zurück, der Lümmel.</p> <div class="signature">-- <br> Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.<br> Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:| </div> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263333#m1263333 KurtZ 2008-07-01T20:00:48Z 2008-07-01T20:00:48Z Mehrere DIVs per JS ausblenden <p>Kurtz gegrüßt</p> <blockquote> <p><a href="http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-71555259" rel="nofollow noopener noreferrer">getElementsByName</a> liefert kein <a href="http://de.selfhtml.org/javascript/objekte/array.htm" rel="nofollow noopener noreferrer">Array</a> zurück, sondern eine <a href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-536297177" rel="nofollow noopener noreferrer">NodeList</a>. Zumindest sollte es so sein, der FF2 gibt anscheinend eine <a href="http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-75708506" rel="nofollow noopener noreferrer">HTMLCollection</a> zurück, der Lümmel.</p> </blockquote> <p>sowas wird IMHO als "Array-Like-Object" subsummiert. Wichtig ist das .length definiert ist.</p> <p>Grüße<br>  Kurt</p> https://forum.selfhtml.org/self/2008/jul/1/mehrere-divs-per-js-ausblenden/1263332#m1263332 Hopsel 2008-07-02T06:20:33Z 2008-07-02T06:20:33Z Mehrere DIVs per JS ausblenden <p>Hi Timo!</p> <blockquote> <p><a href="http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-71555259" rel="nofollow noopener noreferrer">getElementsByName</a> liefert kein <a href="http://de.selfhtml.org/javascript/objekte/array.htm" rel="nofollow noopener noreferrer">Array</a> zurück, sondern eine <a href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-536297177" rel="nofollow noopener noreferrer">NodeList</a>.</p> </blockquote> <p>Es ist ja nicht meine Schuld, dass dieses Array fälschlicherweise als Liste bezeichnet wird. =)</p> <p>MfG H☼psel</p> <div class="signature">-- <br> "It's amazing I won. I was running against peace, prosperity, and incumbency."<br> George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001<br> <a href="http://community.de.selfhtml.org/fanprojekte/selfcode.htm" rel="nofollow noopener noreferrer">Selfcode</a>: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:) </div>