PHASE: getElementsByTagName. tr aus/einblenden

hallo, ich möchte iene hilfeseite mit verschiedenen themen bauen.
hierzu habe ich einpaar überschriften die auf die themen verweisen und bei klick darauf die entsprechende tr einblenden.

hier mein javascript:
---
function showHide(alt){
 for(var i = 0; i < document.getElementsByTagName("tr").length;i++){

if(document.getElementsByTagName("tr")[i].getAttribute("class") == "weg" && document.getElementsByTagName("tr")[i].getAttribute("alt") == alt){
   document.getElementsByTagName("tr")[i].setAttribute("class","da",false);
  }
 }
}
--

aufruf sieht so aus:

--
<a href="#" onclick="showHide('anmeldung')">Anmeldung & Abmeldung</a>
--

die tr dazu so:

--
<tr alt="anmeldung" class="weg">
--

das klappt alles ganz gut nur möchte ich jetzt das wenn ein anderes thema angeklickt wird die zuvor angezeigte tr wieder ausgeblendet wird.  hoffe hier kann mir jemand einen tipp geben.

danke und gruß
phase

  1. Hallo PHASE,

    entweder du merkst dir, welches TR gerade sichtbar ist, und machst es dann vor dem Öffnen des Nächsten wieder unsichtbar, oder, da du dich ja sowieso durch alle TRs durchhangelst, du machst einfach auf Verdacht alle unsichtbar und nur das gewünschte sichtbar:

      
    function showHide(alt){  
     var e=document.getElementsByTagName("tr");  
     for(var i = 0; i < e.length;i++){  
      if(e[i].getAttribute("alt") == alt)  
       e[i].setAttribute("class","da",false);  
      else  
       e[i].setAttribute("class","weg",false);  
     }  
    }  
    
    

    Das ist jetzt nicht getestet. Ob das Attribut "alt" erlaubt und hierfür optimal ist, weiß ich nicht. Ich hätte den TRs eine ID gegeben.

    Gruß, Jürgen

    1. Hi Jürgen,
      danke. das werde ich mal testen.

      Das ist jetzt nicht getestet. Ob das Attribut "alt" erlaubt und hierfür optimal ist, weiß ich nicht. Ich hätte den TRs eine ID gegeben.

      ich finde die lösung mit dem alt auch nciht optimal aber ids kann ich nicht vergeben da ich mehrere trs auf einmal ein-/ausblenden muss.

      gruß
      phase

      1. Hi,

        ich finde die lösung mit dem alt auch nciht optimal aber ids kann ich nicht vergeben da ich mehrere trs auf einmal ein-/ausblenden muss.

        1. Vorhandene Attribute falsch anzuwenden ist sehr fehleranfällig. Erfinde selber eines (ich nehme GID).
        2. CLASS *niemals* über setAttribute() ansprechen, sondern *nur* über className!
        3. Coding: Darstellungswechsel - Un-/Sichtbare Elemente: Ein-/Ausklappen, Verstecken, Transparenz, Farbe

        Gruß, Cybaer

        --
        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"!
        1. hi Cybaer, danke für die Hinweise und vorallem für den Link. Hat mir sehr geholfen und ich hab ne menge gelernt.

          Gruß
          phase