Hallo Forum,
den folgenden Code hab ich hier im Forum gefunden.
http://forum.de.selfhtml.org/archiv/2008/4/t170383/
Er soll das div"versteckt" beim Anklicken eines Wortes einblenden.
Leider bekomme ich das als JS-Neuling nicht zum laufen. Irgendwas haut da nicht hin...
Wenn ich die this-Übergabe weglasse und das div einfach per document.getElementById... anspreche, funktioniert es.
Ich habe in meinem Projekt unterschiedlich viele solcher Aufklapp-Texte auf einer Seite.
Frage 1: was funktioniert da nicht mit der Übergabe per this und parentNode
Frage 2: wie könnte man die Funktion umwandeln, ohne eine eindeutige ID zu verwenden, damit sie auf beliebig viele Texte anwendbar ist ?
(geht: parentNode -> div ? wie deklariert man das ?)
Vielen Dank für Eure Hilfe !
-Mathias-
<style type="text/css">
#einblenden {
text-decoration: underline;
}
#versteckt {
display: none;
}
#ausblenden {
text-decoration: underline;
}
</style>
<script type="text/javascript">
function einblenden(el) {
el.parentNode.getElementById('versteckt').style.display = 'block';
}
function ausblenden(el) {
el.parentNode.getElementById('versteckt').style.display = 'none';
}
</script>
<p>
> ich möchte, dass beim Klicken auf das Wort "<span id="einblenden" onclick="einblenden(this);">weiterlesen</span>" sich ein weiterer Text öffnet, welcher zuvor nicht zu sehen ist. <div id="versteckt">Sofern der Leser sich entscheidet, die weitergehenden Informationen doch nicht lesen zu wollen, soll bei Klick auf das Wort "<span id="ausblenden" onclick="ausblenden(this);">zurück"</span> der zusätzliche Text wieder ausgeblendet werden.</div>
</p>