Elemente anzeigen und verbergen mit Javascript

Vorwort

Möchten Sie auf Ihrer Webseite HTML Elemente anzeigen oder verbergen ohne die Seite neu zu laden, dann werden die in diesem Artikel beschriebenen Javascript Funktionen Ihnen eine Möglichkeit aufzeigen.

Beim erstellen von Hypertext ist es von Vorteil dem Besucher die Wahl zu lassen ob er weitere Informationen zu einem Thema wünscht oder nicht.
Vermeiden Sie, dass Ihr Besucher von unwichtigen Informationen überflutet wird. Halten Sie die Struktur Ihrer Webseite übersichtlich und fassen Sie sich Kurz.

Zu diesem Zweck mit Vorschauen oder Teasern zu Arbeiten ist also nichts neues und wird oft praktiziert. Meist dienen diese Vorschauen als Hyperlink und leiten den Besucher auf Unterseiten weiter.
Mit Hilfe der folgenden Javascript Funktionen ist es möglich Inhalte die mit Ankern verknüpft sind ohne das Laden einer Unterseite anzuzeigen.
Was z. B. Hilfreich sein kann, wenn es sich nicht lohnt eine extra Unterseite zu erstellen. Im Fall, dass die Information kurz ist oder inhaltlich unmittelbar mit der Seite verflochten ist.

Ein weiteres Anwendungsbeispiel wären Ihren Besuchern interaktive Hilfestellung beim ausfüllen von Formularen zu geben. In Form von:

Kundennummer:
[?]

Sie finden Ihre Kundennummer auf der Rückseite Ihres Gerätes.
Ihre Kundennummer hat das Format: KNr.: 000-000-00

Beim klick auf das Fragezeichen findet Ihr Besucher dann z. B. Antworten auf Fragen wie: Wo finde ich meine Kundennummer? Oder wie sieht eigentlich die Kundennummer aus?
Probieren Sie es einfach selbst aus und klicken Sie einmal auf das Fragezeichen.

Gerade bei Formularen, da hier ein neu laden der Seite nicht möglich ist ohne ausgefüllte Inhalte zu löschen, ist diese Methode sehr effektiv und eine weitere Möglichkeit neben einem Pop-up.

Funktionsweise

Die betreffenden HTML Elemente werden über das CSS Element display verborgen bzw. angezeigt.

Über die Zuordnung einer eindeutigen ID bei den entsprechenden HTML Elementen, wird mit Hilfe von Javascript die CSS Direktive display: none; bzw. display: block; gesetzt. Was dann z. B. durch das Anklicken eines Hyperlinks ausgelöst werden kann mit dem entsprechenden Javascript Eventhandler.

Hierbei ist display: none; über die onload Funktion hide_class() auf betreffende Elemente default gesetzt. Um zu vermeiden das Besucher mit ausgeschalteten Javascript die Informationen nicht wahrnehmen können.

Anzeigen, Verbergen Funktionen

Die zwei Kernfunktionen hide_elements() und show_elements(), welche über die CSS ID Elemente verbergen bzw. anzeigen.

function show_elements()


// Elemente einblenden
// Mit show_elements() können einzelne oder mehrere Elemente
// via show_elements('ElementIDone','ElementIDtwo','ElementIDthree')
// eingeblendet werden.
function show_elements()
 {
  var elementNames = show_elements.arguments;
  for (var i=0; i<elementNames.length; i++)
   {
     var elementName = elementNames[i];
     document.getElementById(elementName).style.display='block';
   }
 }
// Elemente ausblenden
// Mit show_elements() können einzelne oder mehrere Elemente
// via hide_elements('ElementIDone','ElementIDtwo','ElementIDthree')
// ausgeblendet werden.
function hide_elements()
 {
  var elementNames = hide_elements.arguments;
  for (var i=0; i<elementNames.length; i++)
   {
     var elementName = elementNames[i];
     document.getElementById(elementName).style.display='none';
   }
 }

Sie sprechen die beiden Funktionen in Ihrem Template mit <a href="#Ankername" title="" onclick="show_elements('foo','bar');hide_elements('baz','yzzy')">Show foo, bar</a> an.

Beispiele Elemente Anzeigen, Verbergen

Im folgenden ein paar Beispiele mit Quelltext wie Sie die Beiden obigen Funktionen einsetzen können.

Siehe auch </archiv/dev/artikel/Elemente_anzeigen_und_verbergen_mit_Javascript/>.

Element verbergen

Beispiel Link: Text verbergen

HTML

Die Hypertext Markup Language (HTML, dt. Hypertext-Auszeichnungssprache), oft auch kurz als Hypertext bezeichnet, ist eine textbasierte Auszeichnungssprache zur Strukturierung von Inhalten wie Texten, Bildern und Hyperlinks in Dokumenten. HTML-Dokumente sind die Grundlage des World Wide Web und werden von einem Webbrowser dargestellt. Neben den vom Browser angezeigten Inhalten einer Webseite enthält HTML zusätzliche Angaben in Form von Metainformationen, die z. B. über die im Text verwendete Sprache oder den Autor Auskunft geben oder den Inhalt des Textes zusammenfassen. Die Auszeichnungssprache wird vom World Wide Web Consortium (W3C) weiterentwickelt. Aktuell trägt HTML die Versionsnummer 4.01. HTML 5 befindet sich in der Entwicklung. Parallel existiert die Extensible Hypertext Markup Language (XHTML), die zeitweilig als Ersatz für HTML 4.01 gedacht war.

Einen Text verbergen

	<div id="text_html">
	<p>
		<a href="#" title="Verbergen" onclick="hide_elements('text_html');">Text verstecken</a>
	</p>
	<p>
		Text der bei einem klick auf Text verstecken ausgeblendet wird.
		...
	</p>
	</div>

Das <div> mit der ID text_html wird bei einem klick auf Text verbergen ausgeblendet.

Element anzeigen

Beispiel Link: Text anzeigen

XHTML

Der W3C-Standard Extensible HyperText Markup Language (erweiterbares HTML; Abkürzung: XHTML) ist eine textbasierte Auszeichnungssprache zur Darstellung von Inhalten wie Texten, Bildern und Hyperlinks in Dokumenten. Es ist eine Neuformulierung von HTML 4 in XML 1.0: Im Gegensatz zu seinem Vorgänger HTML, welcher mittels SGML definiert wurde, verwendet XHTML die strengere und einfacher zu parsende SGML-Teilmenge XML als Sprachgrundlage. XHTML-Dokumente genügen also den Syntaxregeln von XML.

Einen Text anzeigen

<p id="linkShow_xhtml">
		<a href="#"  title="Anzeigen" onclick="show_elements('text_xhtml');hide_elements('linkShow_xhtml')">Text anzeigen</a>
	</p>
	<div id="text_xhtml" class="noscript">
	<p>
		Text der bei einem klick auf Text anzeigen erscheint.
	</p>
	</div>

Das <div> mit der ID text_xhtml erscheint bei einem klick auf Text anzeigen. Währendem <p> mit der ID linkShow_xhtml ausgeblendet wird.

Element anzeigen/verbergen

Beispiel Link: Text anzeigen

CSS

Cascading Style Sheets (Abk.: CSS) ist eine deklarative Stylesheet-Sprache für strukturierte Dokumente. Sie wird vor allem zusammen mit HTML und XML (zum Beispiel bei SVG) eingesetzt. CSS legt dabei fest, wie ein besonders ausgezeichneter Inhalt oder Bereich dargestellt werden soll. Dazu ist es wichtig, das HTML oder XML so zu gestalten, dass die Abschnitte, deren Aussehen gleich sein soll, auch als derselben Klasse angehörend erkannt werden können. Man zeichnet im HTML-Dokument also nur die Bedeutung einzelner Abschnitte aus, während das Aussehen dieser ausgezeichneten Abschnitte im CSS festgelegt wird. Mit anderen Worten, man trennt den eigentlichen Inhalt von der optischen Gestaltung.

Mit CSS ist es möglich, für verschiedene Ausgabemedien (Bildschirm, Papier, Projektion, Sprache) eine unterschiedliche Darstellung anzugeben. Das ist nützlich, um zum Beispiel Hyperlinks beim Drucken extra aufzuführen oder für Geräte mit geringerer Auflösung (zum Beispiel PDA oder Mobiltelefon) die Anzeige zu optimieren (geringere Seitenbreite und -höhe).

Neben diversen Angaben zu Farben und Schriften bietet CSS die Möglichkeit, Elemente frei zu positionieren oder Hintergrundbilder festzulegen.

CSS gilt heutzutage als die Standard-Stylesheetsprache für Webseiten.

Beispiel Link: Text verbergen

Einen Text anzeigen/verbergen

	<p><strong><acronym title="Cascading Style Sheets">CSS</acronym></strong></p>
	<p id="linkShow_css">
		<a href="#" title="Anzeigen" onclick="show_elements('text_css');hide_elements('linkShow_css')">Show</a>
	</p>
	<div id="text_css" class="noscript">
		<p>
			Text der bei einem klick auf Show erscheint.
		</p>
		<p><a href="#" title="Verbergen" onclick="show_elements('linkShow_css');hide_elements('text_css')">Hide</a></p>
	</div>

Das vorher ausgeblendete <div> mit der ID text_css erscheint bei einem klick auf Text anzeigen. Während <p> mit der ID linkShow_css ausgeblendet wird. Der Text verbergen Link macht es rückgängig.

Element anzeigen

Javascript

JavaScript ist eine Skriptsprache, die hauptsächlich für das DOM-Scripting in Web-Browsern eingesetzt wird. Obschon nur ein Wort, ist umgangssprachlich unter JavaScript aber immer die Gesamtheit aus den Eigenschaften des Browsers (beziehungsweise Clients oder Scripting-Hosts) sowie des Document Object Models (DOM) und des Sprachkerns zu verstehen.

Der als ECMAScript (ECMA 262) standardisierte Sprachkern von JavaScript beschreibt eine moderne, schlanke, dynamisch typisierte, objektorientierte aber klassenlose Skriptsprache, die dennoch allen objektorientierten Programmierparadigmen unter anderem auch - aber eben nicht ausschließlich - auf der Basis von Prototypen gerecht wird. Obwohl im Grunde eine funktionale Skriptsprache, lässt sich in JavaScript sowohl prozedural als auch rein funktional bzw. objektorientiert programmieren.

DOM

Das Document Object Model (DOM) ist eine Programmierschnittstelle (API) für den Zugriff auf HTML- oder XML-Dokumente. Sie wird vom World Wide Web Consortium definiert.

Im Sinne der objektorientierten Programmierung besteht das DOM aus einem Satz von Klassen zusammen mit deren Methoden und Attributen. Es erlaubt Computerprogrammen, dynamisch den Inhalt, die Struktur und das Layout eines Dokuments zu verändern.

ActiveX

ActiveX bezeichnet ein Softwarekomponenten-Modell von Microsoft für aktive Inhalte. ActiveX-Komponenten erweitern die Component-Object-Model-Standards (COM) von Microsoft.

Es sind Softwarekomponenten für andere Anwendungen, Makroprogrammierungen und Entwicklungsprogramme; sie können gleichermaßen in verschiedenen Programmiersprachen und Umgebungen verwendet werden. Einige Programme nutzen zum Beispiel den Internet Explorer zur Anzeige von Informationen. Die ActiveX-Komponente ActiveX Data Objects (ADO) dient zum Beispiel für den Zugriff auf Datenbanken.

ActiveX gibt es nur für die Betriebssystemfamilie Windows. Bis zur Einstellung des Internet Explorers für den Mac waren speziell für Mac OS kompilierte ActiveX-Steuerelemente auch auf dem Apple Macintosh ausführbar.

Informationen zu einem ausgewählten Elemente anzeigen

	<div>
	<select name="select_list">
		<option value="Javascript" onclick="show_elements('select_javascript');hide_elements('select_activex','select_dom')">Javascript</option>
		<option value="DOM" onclick="show_elements('select_dom');hide_elements('select_activex','select_javascript')">DOM</option>
		<option value="AktivX" onclick="show_elements('select_activex');hide_elements('select_dom','select_javascript')">ActiveX</option>
	</select>
	</div>
	<div id="select_javascript" class="noscript">
		<strong>Javascript</strong>
		<blockquote cite="http://de.wikipedia.org/wiki/JavaScript">
		<p>
			...
		</p>
	</div>
	<div id="select_dom" class="noscript">
		<strong><acronym title="Document Object Model">DOM</acronym></strong>
		<p>
			...
		</p>
	</div>
	<div id="select_activex" class="noscript">
		<strong>ActiveX</strong>
		<p>
			...
		</p>
	</div>

Select Liste die bei einem klick auf das entsprechende Element die passende ID anzeigt und vorher ausgewählte Elemente ausblendet.

Elemente anzeigen

PHP
CGI
Perl

PHP

PHP (rekursives Backronym für "PHP: Hypertext Preprocessor" ursprünglich "Personal Home Page Tools") ist eine Skriptsprache mit einer an C angelehnten Syntax, die hauptsächlich zur Erstellung von dynamischen Webseiten oder Webanwendungen verwendet wird. PHP ist Open-Source-Software.

PHP zeichnet sich besonders durch die leichte Erlernbarkeit, die breite Datenbankunterstützung und Internet-Protokolleinbindung sowie die Verfügbarkeit zahlreicher, zusützlicher Funktionsbibliotheken aus. Es existieren beispielsweise Programmbibliotheken, um Bilder und Grafiken zur Einbindung in Webseiten dynamisch zu generieren.

CGI

Das Common Gateway Interface (CGI) - in etwa Allgemeine Vermittlungsrechner-Schnittstelle - ist ein Standard für den Datenaustausch zwischen einem Webserver und dritter Software, die Anfragen bearbeitet. CGI ist eine schon länger bestehende Variante, Webseiten dynamisch bzw. interaktiv zu machen, deren erste Überlegungen auf das Jahr 1993 zurückgehen.

Perl

Perl ist eine freie, plattformunabhängige und interpretierte Programmiersprache (Skriptsprache), die mehrere Programmierparadigmen unterstützt.

Der Linguist Larry Wall entwarf sie 1987 als Synthese aus C, awk, den UNIX-Befehlen und anderen Einflüssen. Ursprünglich als Werkzeug zur Verarbeitung und Manipulation von Textdateien insbesondere bei System- und Netzwerkadministration vorgesehen (z. B. Auswertung von Logdateien), hat Perl auch bei der Entwicklung von Webanwendungen und in der Bioinformatik weite Verbreitung gefunden. Traditionell stark ist Perl auch in der Finanzwelt, bei der Verarbeitung von Datenströmen verschiedenartiger Nachrichtenquellen. Hauptziele sind eine schnelle Problemlösung und größtmögliche Freiheit für Programmierer. Die Bearbeitung von Texten mit Hilfe regulärer Ausdrücke sowie viele frei verfügbare Module, die an einem zentralen Ort (CPAN) gesammelt werden, sind Stärken der Sprache.

Informationen zu selektierten Elementen anzeigen

	<p>
		<input type="checkbox" name="text" value="PHP" onclick="show_elements('text_php')">PHP<br>
		<input type="checkbox" name="text" value="CGI" onclick="show_elements('text_cgi')">CGI<br>
		<input type="checkbox" name="text" value="Perl" onclick="show_elements('text_perl')">Perl
	</p>
	<div id="text_php" class="noscript">
	<strong><acronym title="Hypertext Preprocessor">PHP</acronym></strong>
	<p>
		...
	</p>
	</div>
	<div id="text_cgi" class="noscript">
	<strong>CGI</strong>
	<p>
		...
	</p>
	</div>
	<div id="text_perl" class="noscript">
	<strong>Perl</strong>
	<p>
		...
	</p>
	</div>

Checkbox die bei gesetztem Hacken das entsprechende <div> mit passender ID einblenden.

Alternative Eventhandler zu onclick wären z. B. onselect, onfocus, onmouseover etc.
Siehe dazu auch selfhtml.org - Javascript Eventhandler - <http://de.selfhtml.org/javascript/sprache/eventhandler.htm>.

Alternative zu noscript Elementen

Um Benutzer mit ausgeschalteten Javascript nicht auszuschließen, setzt Javascript beim Laden der Seite verborgene Elemente auf display: none;. Ist Javascript deaktiviert, werden diese Elemente angezeigt und sind für diese Benutzergruppe ebenfalls einsehbar.

function hide_class()

// Classes ausblenden
// Addiert zu alle CSS Classes jshide
// .noscript Classes werden dann via CSS
// mit .jshide.noscript { display: none; }
// ausgeblendet.
// Falls ein Besucher Javascript aushaben sollte, werden alle
// Elemente bzw. Classes angezeigt.
function hide_class()
 {
  document.documentElement.className += ' jshide';
 }

// Beim Seitenaufbau laden
window.onload = function()
 {
  hide_class();
  // andere window.onload Events
 }

Wie Sie sehen können fügt hide_class() allen Elementen den ClassName .jshide hinzu. Elemente die verborgen werden sollen besitzen bereits die class .noscript. Über den CSS Selector .jshide .noscript werden diese Elemente nun angesprochen und auf display: none; gesetzt.

Links und Quellen

Kommentare

Ich finde das layout ok (andere haben mir zwar auch schon beessr gefallen aber egal), das einzige was mich stf6rt ist, wie ihr den blog zerstfcckelt habt. Bei anderen Festivalseiten (und auch in e4lteren oasg-versionen) war das irgendwie fcbersichtlicher und vor allem konnte in entsprechenden threads zum beispiel auch fcber bands spekuliert werden, was die vorfreude auf das festival an sich noch gesteigert hat. Richtet doch bitte so was wieder ein.

RIzaa, Samstag, 19. Mai 2012, 04:38

Echt super Tutorial!
Allerdings ein paar Fragen: Wohin mit den 2Funktionen show_elements() und hide_elements() ? Egal ob ich es in Php Tags, in HTml tags oder so mache, ständig kommen fehler!
MfG

test, Dienstag, 09. Oktober 2012, 22:34

Hallo, das hier ist ein Kommentar.Um Kommentare zu bearbeiten, musst du dich aneedlmn und zur dcbersicht der Artikel gehen. Dort bekommst du dann die Gelegenheit sie zu vere4ndern oder zu lf6schen.

Liazermaria, Freitag, 08. August 2014, 08:51

filho da puta

asasdsda, Mittwoch, 29. April 2015, 09:18

Hallo
Das Beispiel "Element anzeiten"
Informationen zu einem ausgewählten Elemente anzeigen
funktioniert nicht mit Google Chrome.
Welche Möglichkeit gibt es hier?

traum, Montag, 17. April 2017, 23:16

Hallo
Das Beispiel "Element anzeigen"
Informationen zu einem ausgewählten Elemente anzeigen
funktioniert nicht mit Google Chrome.
Welche Möglichkeit gibt es hier?

traum, Montag, 17. April 2017, 23:17

sdsdsd

sdsds, Samstag, 03. Juni 2017, 13:14

Test

Tester, Donnerstag, 16. November 2017, 15:53

Test

Tester, Donnerstag, 16. November 2017, 15:53

Test

Tester, Donnerstag, 16. November 2017, 15:57

Insgesammt 12 Kommentare

Seite 1 von 2

Kommentar schreiben

  • (optional, Email Adresse wird nicht angezeigt)