document.write variable um 1 erhöhen
Lukas Böhm
- javascript
0 Rafael0 Lukas Böhm0 Thorsten F.0 Rafael
0 Der Martin
Hi!
Ich möchte, dass per document.write der Wert einer Variable ausgegeben wird. Wenn eine bestimmte Funktion durchlaufen wird, dann wird diese Variable aber um 1 erhöht. Und das zeigt mein document.write nicht an, weil es ja am Anfang ausgeführt wurde. Wie könnte ich das lösen? Ich habe mir es so gedacht:
var a = 0
function xy(){
.
.
.
document.write(a);
a++
}
Aber dann wird das document.write doch nicht an der Stelle ausgeführt, an der ich es will.
Wie könnte ich dieses Problem lösen? Vielen Dank für die Hilfe!
szia, Lukas
Du tauschst einfach document.write und a++.
var a = 0
function xy(){
.
.
.
a++;
document.write(a);
.
.
}
Hi!
Danke für deine Antwort!
Aber dann wird es doch nicht an der Stelle ausgeführt, an der ich es stehen haben will, oder?
szia, Lukas
Hi!
Danke für deine Antwort!
Aber dann wird es doch nicht an der Stelle ausgeführt, an der ich es stehen haben will, oder?
szia, Lukas
Hi,
du kannst ja zur selben Zeit 2 Sachen ausführen. Ohne Funktionsaufrufe wird doch ein Script von oben nach unten abgearbeitet oder?
Ist zwar keine Lösung, aber warum schreibst du nicht einfach:
document.write(a++)
?
Hi,
noch etwas:
Das document.write ist doch nur eine schlichte Textausgabe. Da ist es doch egal wo die im Script steht, denn die macht ja nix besonderes.
Hi!
Es ist egal, wo diese im Script steht. Aber dann weiß doch das Script nicht, wo es das Ergebnis von document.write hinschreiben soll, oder?
Meine Frage ist: Wie kann ich einem document.write sagen, wo es die Ausgabe platzieren soll? Kann man das?
Vielen Dank!
szia, Lukas
Hi!
Danke an euch alle! Aber der Martin hat mir die Lösung gesagt! Trotzdem Danke für die Bemühungen!
szia, Lukas
Hi!
Danke für deine Antwort!
Aber dann wird es doch nicht an der Stelle ausgeführt, an der ich es stehen haben will, oder?
szia, Lukas
Ich fürchte, ich verstehe nicht ganz was du mit dem JavaScript machen willst. Möchtest du dynamisch eine Zahl ändern während ein Nutzer auf deiner Seite ist? Oder willst du eine Zahl zur einmaligen Anzeige berechnen?
Zu Position: Platziere das JavaScript doch einfach an dem Ort an dem das document.write ausgeführt werden soll. Oder versteh ich dich einfach falsch?
Hallo Lukas,
var a = 0
function xy(){
...
document.write(a);
a++
}
was du da andeutest, führt wahrscheinlich zum Chaos. ;-)
Denn document.write() kann nur gefahrlos angewendet werden, WÄHREND das Dokument vom Browser interpretiert ("gerendert") wird. Wenn das Dokument bereits fertig geladen ist und document.write() dann ausgeführt wird, dann ersetzt die Ausgabe das komplette geladene Dokument. Resultat: Du siehst zwar noch den ausgegebenen Text im Browserfenster, aber sonst nichts mehr.
Wie könnte ich dieses Problem lösen?
Wenn du bestimmte Anzeigen dynamisch ändern willst, musst du dich von document.write() verabschieden. Stattdessen empfehle ich als einfachste (nicht unbedingt stilistisch optimale) Möglichkeit, den Variableninhalt in einem <input> auszugeben. Schematisch angedeutet:
<input type="text" id="ausgabe" readonly value="">
~~~javascript
function UpdateInfo(NewText)
{ document.getElementById("ausgabe").value = NewText;
}
So kannst du nun jederzeit, nachdem das Dokument fertig geladen ist, die Funktion UpdateInfo() aufrufen, der du den neuen anzuzeigenden Wert übergibst. Damit das Textfeld nicht als solches auffällt, kann man ihm noch Rahmen, Hintergrund und Schrift passend zum restlichen Design hinformatieren.
> szia, Lukas
Ich grüble schon seit ein paar Tagen, was dein Kürzel "szia" heißen soll. Erklär doch mal. :-)
Schönes Wochenende noch,
Martin
--
Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde.
Hi!
Vielen Dank für deine Tips! Jetzt habe ich es so wie ich es will/brauche. :-)
So kannst du nun jederzeit, nachdem das Dokument fertig geladen ist, die Funktion UpdateInfo() aufrufen, der du den neuen anzuzeigenden Wert übergibst. Damit das Textfeld nicht als solches auffällt, kann man ihm noch Rahmen, Hintergrund und Schrift passend zum restlichen Design hinformatieren.
Ich habe nur das Problem, dass ich nicht weiß, ob das so ok ist, wie ich es jetzt gemacht habe.
Ich habe den <input> ohne ein <form> geschrieben. Muss das <form> dazu? Weil mit <form> hilft nicht einmal display:inline um es in eine Zeile mit dem restlichen Text zu bringen :-O
Und ist die CSS-Angabe border:none bei Input ok, oder ist das nicht standardkonform?
szia, Lukas
Ich grüble schon seit ein paar Tagen, was dein Kürzel "szia" heißen soll. Erklär doch mal. :-)
Szia ist ungarisch. Man kann es als Begrüßung und als Verabschiedung benutzen. Aber nur bei Freunden oder Bekannten. Zu einem Lehrer o.ä. "Szia" zu sagen ist unhöflich.
Nochmals vielen Dank für deine Hilfe!
szia, Lukas
Hallo,
Ich habe den <input> ohne ein <form> geschrieben. Muss das <form> dazu?
nein, nicht unbedingt. Das form-Element ist nur dann nötig, wenn du tatsächlich Eingaben zur Verarbeitung an ein anderes Script auf dem Server schicken willst. Solange du nur lokal mit Javascript darauf zugreifst, kann ein Formularelement (input, button, textarea) auch für sich allein stehen.
Und ist die CSS-Angabe border:none bei Input ok, oder ist das nicht standardkonform?
Warum sollte es das nicht sein? Die border-Eigenschaft ist auf nahezu jedes (vielleicht sogar tatsächlich auf jedes) Element anwendbar.
Szia ist ungarisch. Man kann es als Begrüßung und als Verabschiedung benutzen. Aber nur bei Freunden oder Bekannten. Zu einem Lehrer o.ä. "Szia" zu sagen ist unhöflich.
Aha, jetzt bin ich wieder schlauer, danke.
szia, Lukas
Schönes Wochenende,
Martin