muhkuh: objekte über name ansprechen, alternative?

Ich habe auf meiner Seite ein paar divs, die ich per name-Attribut zu Gruppen zusammengetan hab. Ich möchte jetzt einzelne Gruppen verstecken/zeigen, wenn ich auf entsprechende Links klicke. Dazu benutze ich das DHTML Skript aus der SelfHTML, um über

getElement("name","bla",i).style.display=none;

in einer Schleife den entsprechenden Wert zu ändern.

Das klappt auch ganz toll, aber XHTML verbietet ja die Benutzung von name bei div. id kann ich nicht benutzen, weil es ja mehrere Objekte mit der gleichen id gäbe. Ideal wäre class, aber da weiß ich nicht wie ich die Objekte per Javascript ansprechen soll.
Weiß da einer Rat?

  1. Hallo muhkuh.

    […] XHTML verbietet ja die Benutzung von name bei div. id kann ich nicht benutzen, weil es ja mehrere Objekte mit der gleichen id gäbe. Ideal wäre class, aber da weiß ich nicht wie ich die Objekte per Javascript ansprechen soll.

    Wie wäre es mit getElementsByClassName?

    Einen schönen Mittwoch noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Hervorragend! Danke!

    2. Hallo Mathias,

      […] XHTML verbietet ja die Benutzung von name bei div. id kann ich nicht benutzen, weil es ja mehrere Objekte mit der gleichen id gäbe. Ideal wäre class, aber da weiß ich nicht wie ich die Objekte per Javascript ansprechen soll.

      Wie wäre es mit getElementsByClassName?

      Bei der Gelegenheit möchte ich außerdem noch auf die Variante von peterS verweisen:
      http://forum.de.selfhtml.org/archiv/2007/3/t148291/

      Viele Grüße,
      Christian

  2. Hello out there!

    um über
    getElement("name","bla",i).style.display=none;
    in einer Schleife den entsprechenden Wert zu ändern.

    Das klappt auch ganz toll, aber XHTML verbietet ja die Benutzung von name bei div.

    HTML 4.01 auch.

    Ideal wäre class, aber da weiß ich nicht wie ich die Objekte per Javascript ansprechen soll.

    Brauchst du gar nicht. Auch keine Schleife.

    Es geht mit CSS und dem Nachfahrenselektor.

    Dazu gibst du dem 'html'-Element ein 'id'-Attribut oder dem 'body'-Element ein 'id'- oder 'class'-Attribut. Diese kannst du leicht dynamisch ändern. http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#universaleigenschaften

    HTML:

      
    <body class="ansicht1">  
      <div id="foo"></div>  
      <div id="bar"></div>  
      <div id="baz"></div>  
    </body>  
    
    

    CSS:

      
    .ansicht1 #foo {display: block}  
    .ansicht1 #bar {display: block}  
    .ansicht1 #baz {display: none}  
      
    .ansicht2 #foo {display: block}  
    .ansicht2 #bar {display: none}  
    .ansicht2 #baz {display: block}  
    
    

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)