Liste durch ausgewählte Variablen erstellen
Holger
- javascript
Hallo miteinander,
ich habe ein kleines Problem mit einer Java Script Seite und hoffe, dass ihr mir dabei helfen könnt.
Es geht um folgendes:
Ich will mir in einer Liste von den Variablen die Namen ausgeben lassen, in denen die Variable "Ausgabe[zeige].a = 1" ist.
Dafür habe ich als erstes die ganzen benötigten Variablen definiert.
var Aufgabe = new Array();
Aufgabe[0]=new Image();
Aufgabe[0].name="A";
Aufgabe[0].a="1";
Aufgabe[1]=new Image();
Aufgabe[1].name="B";
Aufgabe[1].a="0";
Aufgabe[2]=new Image();
Aufgabe[2].name="C";
Aufgabe[2].a="1";
var zeige="0";
Nun kann ich mir eine Liste der Namen z.B. über folgenden Befehl anzeigen lassen:
if (Aufgabe[0].a == 1) var a = Aufgabe[0].name; else var a = "";
if (Aufgabe[1].a == 1) var b = Aufgabe[1].name; else var b = "";
if (Aufgabe[2].a == 1) var c = Aufgabe[2].name; else var c = "";
var ausgabe = a + b + c;
function init()
{
if(document.all)
document.all.div1.innerHTML = ausgabe;
}
Nun habe ich nur zwei kleine Probleme:
1. Ich brauche, so wie es jetzt programmiert ist, für jede Aufgabe eine eigene if-Zeile. Und da die Liste sehr umfangreich werden wird, und evtl. später noch weitere Aufgaben dazukommen werden, möchte ich nicht jedes mal eine weitere if-Zeile hinzufügen müssen. Deshalb dachte ich mir, dass man das veilleicht über
for (zeige=0; zeige<Aufgabe.length -1; zeige++)
...
programmieren könnte. So, dass das Script automatisch alle Aufgaben durchsucht und die entsprechenden Namen in eine Liste schreibt.
2. Im Moment werden die Namen der Aufgaben in einer Zeile dargestellt. Mit welchem Befehl kann ich einen Zeilenumbruch bewirken, dass mir diese in einer Spalte angezeigt werden?
Schon mal vielen Dank für eure Hilfe!
Mfg
Holger
hi,
if (Aufgabe[0].a == 1) var a = Aufgabe[0].name; else var a = "";
if (Aufgabe[1].a == 1) var b = Aufgabe[1].name; else var b = "";
if (Aufgabe[2].a == 1) var c = Aufgabe[2].name; else var c = "";
var ausgabe = a + b + c;
- Ich brauche, so wie es jetzt programmiert ist, für jede Aufgabe eine eigene if-Zeile. Und da die Liste sehr umfangreich werden wird, und evtl. später noch weitere Aufgaben dazukommen werden, möchte ich nicht jedes mal eine weitere if-Zeile hinzufügen müssen. Deshalb dachte ich mir, dass man das veilleicht über
for (zeige=0; zeige<Aufgabe.length -1; zeige++)
...
programmieren könnte. So, dass das Script automatisch alle Aufgaben durchsucht und die entsprechenden Namen in eine Liste schreibt.
und, wo ist das problem?
var ausgabe = "";
for (zeige=0; zeige<Aufgabe.length -1; zeige++)
{
if (Aufgabe[zeige].a == 1) ausgabe += Aufgabe[zeige].name;
}
sollte dazu eigentlich genügen.
- Im Moment werden die Namen der Aufgaben in einer Zeile dargestellt. Mit welchem Befehl kann ich einen Zeilenumbruch bewirken, dass mir diese in einer Spalte angezeigt werden?
da du die ausgabe der eigenschaft innerHTML zuweist, würde ich sagen, nimm das, was du in html immer für einen zeilenumbruch benutzt: <br>.
damit ändert sich in obiger for-schleife die zuweisung folgendermaßen:
ausgabe += Aufgabe[zeige].name + "br";
gruss,
wahsaga
hallo,
erst mal danke für die schnelle Antwort!
Leider funktioniert das aber immer nochnicht so richtig. ich kriege nämlich irgendwie nur den ersten eintrag angezeigt und nicht die weiteren.
hier nochmal der ganze code, wie das aussieht:
var Aufgabe = new Array();
Aufgabe[0]=new Image(); Aufgabe[0].name="a"; Aufgabe[0].a="1";
Aufgabe[1]=new Image(); Aufgabe[1].name="b"; Aufgabe[1].a="0";
Aufgabe[2]=new Image(); Aufgabe[2].name="c"; Aufgabe[2].a="1";
var ausgabe = "";
for (zeige=0; zeige<Aufgabe.length -1; zeige++)
{
if (Aufgabe[zeige].a == 1) ausgabe += Aufgabe[zeige].name;
}
function init()
{
if(document.all)
document.all.abd.innerHTML = ausgabe;
}
mfg
Holger
sorry,
aber die letzte Nachricht hab ich etwas zu früh geschrieben. ich hab es jetzt hinbekommen!
Aber leider funktioniert der Zeilenumbruch noch nicht.
die Methode mit
ausgabe += Aufgabe[zeige].name + "br";
funktioniert nicht, da mir das Script alles in "" als Text auf den Bildschirm schreibt.
Hast du da evtl. noch eine andere Idee?
Mfg
Holger
Hallo,
Aber leider funktioniert der Zeilenumbruch noch nicht.
die Methode mitausgabe += Aufgabe[zeige].name + "br";
funktioniert nicht, da mir das Script alles in "" als Text auf den Bildschirm schreibt.
Ist jetzt nur geraten, aber versuchs mal so:
ausgabe += Aufgabe[zeige].name + "<br>";
Gruß
Kurt
hmmm,
eigentlich hätte ich da auch selbst drauf kommen können, dass da die < > Zeichen fehlen.
auf jeden Fall funktioniert das ganze jetzt so wie es soll.
vielen Dank!!!
Holger
hi,
Aber leider funktioniert der Zeilenumbruch noch nicht.
die Methode mit
ausgabe += Aufgabe[zeige].name + "br";
funktioniert nicht, da mir das Script alles in "" als Text auf den Bildschirm schreibt.
habe ich wirklich "br" geschrieben? *schäm*
ein html-zeilenumbruch heisst natürlich "<br>", wie KD-One schon anmerkte.
gruss,
wahsaga