mikethet: Multiple Select auslesen

Beitrag lesen

Hallo,

function IceCreme(){

var sorten =document.getElementById("icecreme");


> Du iterierst über das Select-Element, möchtest aber Options haben  
>   
> > ~~~javascript

var Output =document.getElementById("Output");  

> >  for(x =0; x <= sorten.length; x++){  
> >    if(sorten[x].selected == true){  
> >      Output.innerHTML = sorten[x].value;  
> 

hier überschreibst du bei jedem Treffer den Inhalt von #Output. Es ist auch nicht empfehlenswert, ständig ins DOM zu schreiben, "sammel" erst ale Values und schreibe sie dann einmalig.

|~~~javascript

}

}


> hier fehlt `}`{:.language-javascript} ist aber wahrscheinlich nur ein copy&paste-Fehler.  
>   
> Ich hab dir die Funktion mal ein bischen umgeschrieben:  
> ~~~javascript

function IceCreme(){  

> 	var sorten =document.getElementById("icecreme").options,  
> 	    Output =document.getElementById("Output"),  
> 	    out = new Array(),  
> 	    i=0;  
> 	  
> 	for(var x=0; x<sorten.length; x++){  
> 		if(sorten[x].selected == true){  
>  			out[i++] = sorten[x].value;  
> 		}  
> 	}  
> 	Output.innerHTML = out.join(', ');  
> }

Bei Fragen fragen ;)

vg ichbinich

Danke erstmal für die schnellen Antworten!

Sehe gerade das ich IceCream falsch geschrieben habe. Bitte nicht beachten. ^.^

@ichbinich: Hallo,

im ersten Satz. Referenziere ich doch direkt auf das Select-Objekt. Warum aber will ich bzw. brauch ich dort die options?

Nächste Frage: Das vorherige abspeichern in ein Array finde ich gut. Nur warum ist es Nachteilhaft jedesmal das DOM zu schreiben. Wird sonst durch jeden Schleifendurchgang sozusagen die Seite "upgedated". Also ist es resourcenschonender zuerst alles abzuspeichern und dann auf einmal auszugeben?

Danke und LG Mike