Thomas: IE9 macht JS-Manipulationen rückgängig?!?

Beitrag lesen

Hallo Forum,

mit dem IE9 hat sich zwar einiges gebessert - aber ganz zufrieden kann man immer noch nicht sein.

Das Problem: Ich habe eine Funktion gebaut, die mir per Klick EIN bestimmtes DIV-Element zeigt und alle anderen versteckt. Ich kann aus bestimmten Gründen kein jQuery oder ein ähnliche Framework verwenden, weil der Hoster dieses verbietet. Gut. Also selber schreiben:

  
...  
<head>  
<script type="text/javascript">  
[code lang=javascript]  
function wackelschalter(given) {  
		var blocks = document.getElementById('tm_serviceDetails');  
		for (var i=0; i<=blocks.childNodes.length-1; i++) {  
			  
			if (blocks.childNodes[i].nodeName == 'DIV') {  
				  
				if (blocks.childNodes[i].className == given ) {  
					blocks.childNodes[i].style.display = "block";  
					} else {  
						blocks.childNodes[i].style.display = "none";  
					}  
					  
				}  
		}  
}  

</script>
</head>
...
[/code]

aufgerufen wird über einen onClick="wackelschalter(bereich1);". Hier übergebe ich den Klassennamen des DIV-Elements ('bereich1', 'bereich2', '...'), das gezeigt werden soll; alle anderen DIVs werden verborgen.

Die zu manipulierenden Objekte sehen so aus:

  
<div id="tm_serviceDetails" style="margin-top:0;">  
	<div class="bereich1"  style="display:none;">  
		<div id="bereich1">  
				  
			<div class="serviceBereich_ubersicht container">  
				<h2>Service im Überblick</h2>  
...  

ALLE Browser reagieren korrekt und tun was sie sollen. Nur der IE9 nicht. Er führt die Manipulation prinzipiell durch, zeigt aber keine Änderungen an. Bemüht man den Debugger kann man die Änderungen sehen - nach Durchlauf der Schleife nimmt der IE aber alle Änderungen wieder zurück und zeigt das HTML so an, wie in die Datei eingetragen.

Er nimmt also die Änderungen wieder zurück. Keine Ahnung, warum er das macht.

Weiss jemand Rat?
--
Tom