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

Beitrag lesen

@@Enrico:

nuqneH

Gut, dann muss ich mich weiter hangeln.

Dann hangel mal. Dabei würde ich nicht davon ausgehen, dass der Textknoten wirklich vorhanden ist. Vielleich schreibst du auch mal <input /><input /> oder verwendest einen HTML-Minifier, der dies tut.

Also eher sowas:

function getPreviousInputElement(id)  
{  
	var currentNode = document.getElementById(id);  
	do {  
		currentNode = currentNode.previousSibling;  
	} while (currentNode && currentNode.nodeName != "INPUT");  
  
	return currentNode;  
}  
  
var previousInputElement = getPreviousInputElement("StrasseB");  
if (previousInputElement)  
{  
	console.log(previousInputElement.id);  
}

In Zukunft sollte auch einfach folgendes möglich sein:

var previousInputElement = document.querySelector("!input + #StrasseB");  

Was für die Gegenwart die Frage aufwirft: Können die beiden Input-Felder auch andersrum stehen?

Dann ginge

var nextInputElement = document.querySelector("#StrasseB" + input);  

Beachte auch, dass du das Formular für Nutzer assistiver Techniken (wie Screenreader) bedienbar hältst. Auch solche Nutzern muss klar sein, dass der Honigtopf nicht gefüllt werden soll. Also die Eingabefelder mit entsprechenden labels versehen.

Qapla'

--
„Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)