variable um eins erhöhen

andyma

Grünschnabel
hallo zusammen,

ich habe folgendes proplem. ich möchte für einen kalender die variable x um eins erhöhen bzw mindern. jedoch bleibt meine variable x immer null. was muss ich in meinem code ändern, dass es funktioniert?

besten dank

HTML:
<html><head><title>Test</title>
</head>
<body>
<script type="text/JavaScript"> 
<!--
 var x = 0;
 
	document.write('<table><tr> <td>');
	document.write('<input type="button" value="&lt;&lt;" onclick="runter()"> ');
	document.write('<input type="button" value="&gt;&gt;" onclick="rauf()">');
	document.write('</td></tr></table>');
 
 function rauf() {var x = x++;};
 function runter() {var x = x--;};
 
 
document.write(x);
 //-->
</script>
</body>
</html>
 
1. in der Funktion var nicht neu definieren, also einfach nur:
Code:
x = x-1;

2.
Code:
x -= 1;
anstelle von
Code:
x = x--;

3. Du musst das ganze natürlich in eine Funktion packen. So wies derzeit ist, wird das Document genau einmal bei PageLoad geschrieben.

In den Funktionen rauf() und runter() musst du noch den document.write(x) aufrufen, also bspw für die Funktion rauf():

Code:
function rauf() {
  x += 1;
  writeToPage();
}

und dann natürlich document.write als Funktion definieren:
Code:
function writeToPage() {
  document.write(x);
}


4. Objektorientierung sei dir hier mal ans Herz gelegt ;)

5. Firebug verwenden (insbesondere die JS-Console)
 
Zuletzt bearbeitet:
was meinst du mit auskomentiert?

Das funktioniert auch nicht ;(
Javascript:
<html><head><title>Test</title>
</head>
<body>
<script type="text/JavaScript"> 
<!--
 var x = 0;
 
	document.write('<table><tr> <td>');
	document.write('<input type="button" value="&lt;&lt;" onclick="runter()"> ');
	document.write('<input type="button" value="&gt;&gt;" onclick="rauf()">');
	document.write('</td></tr></table>');
 
 function rauf() {x = x+1;};
 function runter() {x = x-1;};
 
 
document.write(x);
 //-->
</script>
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
danke,

wie siehts aus wenn ich die variable nicht ausgeben, sondern verwenden will (ausserhalb der funktion rauf oder runter)
muss ich die variable irgendie mit return oder global ausgeben?

zudem ist es schade, dass die buttons nach dem klick verschwinden.. die sollen bleiben :)
 
wie siehts aus wenn ich die variable nicht ausgeben, sondern verwenden will (ausserhalb der funktion rauf oder runter)
muss ich die variable irgendie mit return oder global ausgeben?

nein. Die Variable x die du derzeit verwendest ist eine globale Variable (außerhalb bspw. einer Klasse). Auf die Variable kannst du von jeder in dem Dokument definierten Funktion aus zugreifen.

Bei Objektorientierung wäre das etwas anders, kleines Beispiel hier:
Code:
// Klasse definieren
var myClass = {
  // Variable in der Klasse definieren
  x: "was auch immer",
  // funktion in der Klasse definieren
  showX: function() {
    return myClass.x;
  }
}

// variable ausgeben -> Funktioniert so nicht
alert(x);

// so gehts (außerhalb der Klasse)
var x = myClass.showX();
alert(x);

andyma hat gesagt.:
zudem ist es schade, dass die buttons nach dem klick verschwinden.. die sollen bleiben :)


Dann musst du ein Div ansprechen, und den Inhalt der Variable da hinein schreiben. Dazu gibts zig Themen im Netz, vorallem selfHTML ist ganz gut ;)

Kleiner Tipp für das Div-Schreiben: document.getElementById("divId").innerHTML = "was du schreiben willst";
 

Neue Beiträge

Zurück