getElementsByTagName. tr aus/einblenden
PHASE
- javascript
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
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
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
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
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