• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] getElementsByTagName...

mbuchegg

Neues Mitglied
Hallo Leute...

Ich blick hier echt nicht mehr durch. Seit Stunden versuch ich das zu realisieren und stehe einfach an. Will nicht. Und es ist überhaupt nicht logisch.

Geht um einen Toggle-Effekt:

<div id="aufklappen">
<a onclick="javascript:toggle('artikel-1')"><img src="news1.png" style="max-height:100%; width:auto; margin-right: 10px;"> <span>Testtitel</span><span class="hinweis">Bericht</span></a>
<div id='artikel-1' style='display: none;' class="klappe">
<p>Testtext</p>
</div>
</div>


So, jetzt möcht ich natürlich einerseits, dass das aufklappt, wenn geklickt wird - das funktioniert ja ohnehin schon lange.
Jetzt ist es allerdings aus Layoutgründen notwendig dem a.tag eine class zuzuweisen, wenn das aufgeklappt ist.

hier mein Ansatz:

<script type="text/javascript">
function toggle(id){
var e = document.getElementById(id);
var a = document.getElementById(id).parentElement.getElementsByTagName("a")[0].firstChild;

if (e.style.display == "none"){
e.style.display = "";
a.className = "aktiv";
} else {
e.style.display = "none";
a.className = "";
}
}
</script>


Das Aufklappen funktioniert nach wie vor, doch die class wird nicht hinzugefügt.
Dann hab ich kurz gedacht - egal - ich geb die class bereits dem parentElement, was allerdings nur teilweise funktioniert, weil auf anderen Positionen hat dieser div schon classes. Und es sollte eine globale Funktion sein.

Wenn ich das verstanden habe...
über get ElementsByTagName wird n array von allen a-tags erstellt die er unter dem parentElement (<div id="aufklappen">) findet. Da gibt's in dem fall nur eines, aber es wird mal vorkommen, dass da mehrere dann in der Klappe drinnen sind. Was aber immer gleich ist - ich brauch den ersten a-tag. Und den will ich mit [0].firstChild ansprechen. Aber das kapier nicht nicht ganz. Das schaut für mich aus wie ne doppelte Wahl. Warum muss ich das beides verwenden - und so geht's ja auch nicht. Da steh ich an, und ich find auch keine ordentliche Erklärung dazu. Wahrscheinlich fehlen mir da die Grundkenntnisse. Kann mir da jemand helfen wo mein Denkfehler ist und wie das das anspricht was ich haben will?

BITTE, bin am verzweifeln. :/

lg M.
 
Werbung:
Werbung:
Zurück
Oben