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