Javascript, инкремент счетчика по нажатию кнопки



В javascript я хочу сделать счетчик, который увеличивает значение при нажатии кнопки.



Когда я нажимаю кнопку Добавить в первый раз, число не увеличивается.



Но когда я печатаю значение на консоль, результат увеличивается.

Скрипка: 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

});

});​


Как сделать так, чтобы значение было одинаковым для обеих строк?

663   4  

4 ответов:

Вы делаете пост-инкремент. Сделайте его предварительно инкрементным:

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

Пояснение:

// 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

Вы имеете в виду:

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

Использовать

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

Живой 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

    });

  });

Попробуйте это:

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


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

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

    });

  });

Посмотрите в этой ссылке описание оператора ++ в JavaScript.

На самом деле изменилась только одна строка; однако вот ссылка скрипача , Если вы хотите ее проверить.

Comments

    Ничего не найдено.