Div-Container mit getElementsByName verstecken

crsakawolf

Erfahrenes Mitglied
Hi,

und zwar habe ich folgendes Problem.

Ich habe eine Liste, welche mit Ajax erstellt wird. Diese sollen beim Anhaken einer Checkbox deaktiviert werden.

Klappt im FireFox wunderbar.

Jedoch im Internet Explorer kein Stück.

Hier mal der Quelltext für die JS

Code:
function changeDetail(){
		for(var x = 0; x< document.getElementsByName('funktion').length; x++){
			if(document.getElementsByName('funktion')[x].style.display=='none')	{
				document.getElementsByName('funktion')[x].style.display = 'block';
			}else{
				document.getElementsByName('funktion')[x].style.display = 'none';
			}
		}
	}

Der div welcher mit Ajax befüllt wird, sieht wie folgt aus:

HTML:
<div class="spalte2" name="funktion" id="fkt9">&nbsp;</div>

Danke schonmal für die Hilfe



Der IE ist echt nervig -.- dauernt muss man sich was für einfalle lassen..
 
Div-Container mit getElementsByName ...

Mmh wie kann ich das umgehen? Ich muss die container ausblenden. Wie gesagt im FF und Safari zb gehts nur der nette IE machts nicht mit.
 
Heyho :)

das ist leider nicht nur ein Div.

Sondern x unbekannte. Da ich diese per Ajax aus einer Datenbank erstellenlasse.
Und auch keine Nummerischfolgende Nummern sondern willkürlich gewürfelt.
 
Und wenn du die X unbekannten DIVs zusammen in einen übergeordneten DIV-Container packst und dann diesen ausblendest?

HTML:
<div id="mach_mich_unsichtbar">
    <div class="spalte2" name="funktion" id="fkt1">&nbsp;</div>
    <div class="spalte2" name="funktion" id="fkt2">&nbsp;</div>

    <div class="spalte2" name="funktion" id="fkt9">&nbsp;</div>
</div>
 
Zuletzt bearbeitet:
Geht auch nicht :(

Ich erklärs mal so.

Ich habe links eine Liste mit Bereichen
und wenn ich diese Anhake erscheint neben dem Bereich rechts eine 2te spalte mit den per ajax geholten daten.

das heist

div links
div rechts
umbruch

div links
div rechts
umbruch ...

alle div's rechst müssen dann ausgeblendet werden.

daher kann ich das nicht alles in eins reinpacken :(
 
HTML:
<div class="auswahl">
            <div class="spalte1">
            
            <div class="checkbox" ><input type="checkbox" onclick="checkFunktion('fktx',this.checked, x);" name="kat[]" value="x" /> </div>
            	<div class="label">bezeichnung</div>       
                
            </div>
            <div class="spalte2" name="funktion" id="fktx">&nbsp;</div>
            
            <br clear="all" />    
            <div class="spalte1">
            
            <div class="checkbox"><input type="checkbox" onclick="checkFunktion('fktx',this.checked, x);" name="kat[]" value="x" /> </div>
            	<div class="label">bezeichnung</div>       
                
            </div>
            <div class="spalte2" name="funktion" id="fktx">&nbsp;</div>
            
            <br clear="all" />  
            <div class="spalte1">
            
            <div class="checkbox"><input type="checkbox" onclick="checkFunktion('fktx',this.checked, x);" name="kat[]" value="x" /> </div>
            	<div class="label">bezeichnung</div>       
                
            </div>
            <div class="spalte2" name="funktion" id="fktx">&nbsp;</div>
            
            <br clear="all" />  
        
</div>

wobei X hier immer für die variable steht.

PS: Hoffe das haut so hin. da ich mit Templates und Platzhaltern arbeite hab ichs nur zusammen gesucht.
 
Zuletzt bearbeitet:
Habe es anderst gelöst.

Ich durchsuche jetzt alle Elemente nach TagName

und frage dann ab, ob es eine bestimmte class ist.

Wenn ja wird diese ausgeblendet.

Code:
function verstecke() {
		var allElems = document.getElementsByTagName('*');
		for (var i = 0; i < allElems.length; i++) {
			var thisElem = allElems[i];
				if (thisElem.className && thisElem.className == 'spalte_fkt') {
					if(thisElem.style.display == 'none')
						thisElem.style.display = 'block';
					else
						thisElem.style.display = 'none';
				}
		}
	}
 
Zurück