Javascript, increment a counter on button click

17,234

Solution 1

You are doing a Post Increment. Make it pre-increment:

addBtn.on("click", function() {
  counter.html(++value);
  console.log(value);
  return
});

Explanation:

// Increment operators
x = 1;
y = ++x;    // x is now 2, y is also 2
y = x++;    // x is now 3, y is 2

// Decrement operators
x = 3;
y = x--;    // x is now 2, y is 3
y = --x;    // x is now 1, y is also 1

Solution 2

do you mean:

addBtn.on("click", function() {
    counter.html(++value);
    return;          
});

Solution 3

Try this:

  $(function() {
    var //valueCount = $("counter").value(),
        counter = $("#counter"),
        addBtn = $("#add"),
        value = $("#counter").html();


    addBtn.on("click", function() {

      counter.html(++value);
      console.log(value);
      return

    });

  });

Take a look in this link about the operator description of ++ in JavaScript.

Only one line actually changed; however, here is the fiddler link if you want to test it.

Solution 4

use

 value = parseInt($("#counter").html());

LIVE jSFiddle

  $(function() {
    var //valueCount = $("counter").value(),
        counter = $("#counter"),
        addBtn = $("#add"),
        value =    parseInt($("#counter").html());


    addBtn.on("click", function() {

      counter.html(++value );
      console.log(value);
      return

    });

  });
Share:
17,234

Related videos on Youtube

TechyDude
Author by

TechyDude

Updated on September 16, 2022

Comments

  • TechyDude
    TechyDude over 1 year

    In javascript, I want to make a counter that increases the value when you click a button.

    When I click the add button the first time, the number doesn't increase.

    But when I print the value to the console, the result increases.

    The fiddle: http://jsfiddle.net/techydude/H63As/

      $(function() {
        var //valueCount = $("counter").value(),
            counter = $("#counter"),
            addBtn = $("#add"),
            value = $("#counter").html();
    
          addBtn.on("click", function() {
    
          counter.html(value ++);  //this value is not incremented.
          console.log(value);      //this value gets incremented.
          return
    
        });
    
      });​
    

    How do I make the value show the same for both lines?

  • TechyDude
    TechyDude over 11 years
    The '++' has to go in front of the value i guess! Thank you for your help!