molily: Wie greife ich auf Elemente mit dynamischen ID's zu?

Beitrag lesen

Hallo,

document.getElementById("StrasseB").previousSibling.id bringt mir leider "undefined".

Dafür ist eher previousElementSibling geeignet. Browserunterstützung beachten.

Wie kann ich über JavaScript ohne auf jQuery oder sonstige Frameworks zurückgreifen zu müssen, ausgehend vom Element mit der ID "StrasseB" die ID des vorherigen Textfeldes ermitteln?
Da sich die Chiffrierungen bei jedem Aufruf des Formulars ändern, kann ich hier zur Laufzeit nicht direkt darauf zugreifen.

Eine Grundregel des DOM-Scriptings ist m.M.n., dass man keine Annahmen über das konkrete Aussehen des DOMs macht (Verschachtelung, Reihenfolge, z.T. Elementtypen). Verwende immer sprechende Namen und verwende ausschließlich diese im CSS und JavaScript.

Wenn du dynamische IDs hast, so verwende statische Klassen. Steige auf zu einem gemeinsamen Elternelement (identifiziert durch eine Klasse) und suche von dort das fragliche input-Element (identifiziert durch eine Klasse). So etwas geht mit jQuery sehr einfach, aber auch ohne mit ein paar Helferfunktionen.

Warum müssen die IDs überhaupt zufällig sein? Sind für den Server nicht eher die name-Attribut ausschlaggebend?

Grüße,
Mathias