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
});
});
Как сделать так, чтобы значение было одинаковым для обеих строк?
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
Использовать
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