mark: Grundsatzfrage

Beitrag lesen

3 stark verkürzte Lösungsansätze meinerseits:

innerHTML nennt sich die Eigenschaft, nach der du suchst.
Container bzw. "Bereiche" für deinen Text gibt es viele: <span>, <div>, <li> ... es hängt vom -mir nicht weiter bekannten- Verwendungszweck ab, welchen du auswählen solltest.

Mit document.write() schreibst du nicht in einen Container, sondern -wie es der Befehl schon ausdrückt- auf die unterste Ebene deines (Html-)Dokuments.

  1. Nimm einen Container mit eindeutiger ID <div id="deintext"></div>. Diesen kannst du nun mit
    document.getElementById('deintext').innerHTML = 'Mein Inhalt blabla';
    befüllen. Die ID dient dazu, dass Javascript weiß, auf welches Element du dich beziehst.

Allerdings möcht ich von dieser Vorgehensweise abraten. So weit als möglich solltest du Inhalt (Html) von Funktionalität (Javascript) und Layout (CSS) trennen. Javascript ist nicht in erster Linie dazu da, deine Seite mit Inhalt zu füllen.

  1. Solange es sich um kleine Datenmengen handelt kannst du für jeden Link einen Container samt Inhalt erstellen und jene Container, die gerade nicht angeklickt sind mit CSS (display:none) ausblenden.
    Javascript verwendest du, um den diese Eigenschaft zu setzen.
    document.getElementById("deintext").style.display = "none";
    Verwende für jedes Element eine andere ID.

  2. Nur der Vollständigkeit halber: Es ist auch möglich dein Vorhaben ohne Javascript, nur mit CSS umzusetzen. Mit dem CSS-Selektor :target.