lousypoetry: Zähler um 10 erhöhen - kann mir jemand helfen?

Hallo zusammen!
Mal wieder ein vermutlich simples problem bzw. eine simple funktion mit einem problem, es geht um einen zähler:

function zaehlen()
{
window.document.spiel.treffer.value = zaehler;
window.document.spiel.treffer.value = zaehler++;
}

funktioniert auch wunderbar, aber: wenn ich den zaehler nicht um '1' sondern um '10' erhöhen will dachte ich mir

function zaehlen()
{
window.document.spiel.treffer.value = zaehler;
window.document.spiel.treffer.value = zaehler+10;
}

funktioniert aber nur beim ersten erhöhen,danach nicht mehr. Kann mir da jemand helfen? Danke!

  1. Hallo,

    function zaehlen()
    {
    window.document.spiel.treffer.value = zaehler;
    window.document.spiel.treffer.value = zaehler++;

    //entspricht:
    zaehler=zaehler+1; window.document.spiel.treffer.value = zaehler;

    }

    funktioniert auch wunderbar, aber: wenn ich den zaehler nicht um '1' sondern um '10' erhöhen will dachte ich mir

    function zaehlen()
    {
    window.document.spiel.treffer.value = zaehler;
    window.document.spiel.treffer.value = zaehler+10;

    zaehler=zaehler+10; window.document.spiel.treffer.value = zaehler;
    //oder
    window.document.spiel.treffer.value = zaehler+=10;

    }

    funktioniert aber nur beim ersten erhöhen,danach nicht mehr. Kann mir da jemand helfen? Danke!

    viele Grüße

    Axel

    1. window.document.spiel.treffer.value = zaehler+=10;

      jau, danke, jetzt gehts, hat wohl an dem '+=' gelegen. aber noch mal eine andere frage: ich möchte, dass wenn der user mit der maus klickt sich ein zähler immer um '1' erhöht, drückt er eine taste, soll sich der zähler um '1' verringern. meine idee:

      var zaehler = 1;

      function zaehlen()
       {
               window.document.spiel.treffer.value = zaehler;
               zaehler++;
       }

      function zaehlen2()
        {
                 window.document.spiel.treffer.value = zaehler;
                 zaehler--;
        }

      und dazu:
      <body onClick="zaehlen()" onKeyDown="zaehlen2()">

      funktioniert soweit auch, nur: angenommen ich zähle per mausklick bis '3' hoch, wenn ich dann eine Taste drücke springt der zähler erst auf '4' und beim zweiten drücken zählt er dann abwärts. Woran liegt das? Hängt das mit
      var zaehler = 1;
      zusammen?

      1. aber noch mal eine andere frage: ich möchte, dass wenn der user mit der maus klickt sich ein zähler immer um '1' erhöht, drückt er eine taste, soll sich der zähler um '1' verringern. meine idee:

        Geh doch mal den Programmablauf durch:

        var zaehler = 1;

        function zaehlen()
        {
                 window.document.spiel.treffer.value = zaehler;

        //nun steht im Formularfeld der Wert von zaehler

        zaehler++;

        //erst _jetzt_ wird um 1 erhöht

        }

        function zaehlen2()
          {
                   window.document.spiel.treffer.value = zaehler;
                   zaehler--;
          }

        und dazu:
        <body onClick="zaehlen()" onKeyDown="zaehlen2()">

        funktioniert soweit auch, nur: angenommen ich zähle per mausklick bis '3' hoch, wenn ich dann eine Taste drücke springt der zähler erst auf '4' und beim zweiten drücken zählt er dann abwärts. Woran liegt das? Hängt das mit
        var zaehler = 1;
        zusammen?

        Nein, damit, dass Du _zuerst_ den Wert ins Feld schreibst und _dann_ weiterzählst. Dadurch wird der Wert beim letzten Plus noch um eins erhöht. Dieser Wert wird aber erst beim nächsten Plus oder eben auch Minus ins Feld geschrieben.

        var zaehler = 0;
        function zaehlen() {
                  zaehler++;
                  window.document.spiel.treffer.value = zaehler;
        }

        function zaehlen2() {
                  zaehler--;
                  window.document.spiel.treffer.value = zaehler;
        }

        viele Grüße

        Axel

        1. oder so:

          function zaehlen()
          {

          window.document.spiel.treffer.value = ++zaehler;

          }

          function zaehlen2()
          {

          window.document.spiel.treffer.value = --zaehler;

          }

          das nennt sich dann pre-Inkrement/Dekrement (glaub ich ;)

          Gruß, Andreas

  2. Hallo lousypoetry,

    function zaehlen()
    {
    window.document.spiel.treffer.value = zaehler;
    window.document.spiel.treffer.value = zaehler++;
    }

    Warum setzt Du erst auf zaehler? Und wo ist zaehler überhaupt definiert (golbale Variable)?

    funktioniert auch wunderbar, aber: wenn ich den zaehler nicht um '1' sondern um '10' erhöhen will dachte ich mir

    function zaehlen()
    {
    window.document.spiel.treffer.value = zaehler;

    Hier dieselbe Frage wie oben.

    window.document.spiel.treffer.value = zaehler+10;
    }

    funktioniert aber nur beim ersten erhöhen,danach nicht mehr. Kann mir da jemand helfen? Danke!

    Was genau funktioniert nicht?

    Wenn ich das richtig sehe, willst Du window.document.spiel.treffer.value um 10 erhöhen:
    window.document.spiel.treffer.value += 10;
    Das sollte schon reichen.

    Grüße
    Andreas

    --
    Auch eine Reise über tausend Kilometer muß mit einem einzelnen Schritt beginnen.
    Laotse "Taoteking"
    related links:
    http://www.duden.de Rechtschreibung leicht gemacht
    http://learn.to/quote Wie zitiere ich richtig?
    http://glasgoogle.de Wie beschreibe ich mein Problem?
    </faq/#Q-19> Links setzen
    "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
    (Rich Cook)