Lieber Rolf,
danke für Deine vielen wertvollen Hinweise und die Mühe, die Du Dir damit gemacht hast. Wirklich super! Ich werde alles Stück für Stück einarbeiten und verbessern.
Zur Lösung meines Hauptproblems hast Du mir das "Disclosure-Widget" <details> empfohlen. Dieses erzeugt leider eine Art neuen Absatz, so dass es insgesamt dann zu eng auf der Seite wird. Das sorgt dafür, dass nicht mehr alles auf eine Seite passt - das ist aus praktischen Gründen aber zwingend für meine Anwendung notwendig. Ich brauche etwas, was sich - ähnlich wie "span" - als Inline-Element verhält.
Ja, ich generiere in einer Schleife viele Abschnitte. Und jeder Abschnitt enthält einen Dropdown-Button samt einer Liste von Links, die sich damit öffnen lässt.
Das Merkwürdige ist nun, dass im resultierenden html-Code bereits die richtigen IDs erscheinen (in den Links des Menüs). Beim Klick auf den Dropdown-Button wird bei allen Abschnitten (Schleifendurchgängen) immer nur das Dropdown-Menü des ersten Eintrages gezeigt, was man an der ID erkennt.
Ich sehe leider nicht die Ursache dafür. Wahrscheinlich muss ich die ID noch irgendwie im JavaScript-Teil verankern, damit es dann unterscheiden kann, welcher Button in der Liste geklickt wird. Könnte das die Lösung sein?