Как добавить целочисленное значение с javascript (jquery) к значению, возвращающему строку?

У меня есть простой html-блок, например:

<span id="replies">8</span>

Использование jquery Я пытаюсь добавить 1 к значению (8).

var currentValue = $("#replies").text();
var newValue = currentValue + 1;
$("replies").text(newValue);

Что происходит, это выглядит так:

81

затем

811

не 9, что будет правильным ответом. Что я делаю неправильно?

Ответ 1

parseInt() заставит его быть целым числом или будет NaN (а не число), если он не может выполнить преобразование.

var currentValue = parseInt($("#replies").text(),10);

Второй параметр (radix) гарантирует, что он анализируется как десятичное число.

Ответ 2

Parse int - это инструмент, который вы должны использовать здесь, но, как и любой инструмент, он должен использоваться правильно. При использовании parseInt вы всегда должны использовать параметр radix для обеспечения правильной базы.

var currentValue = parseInt($("#replies").text(),10);

Ответ 3

Целое число преобразуется в строку, а не наоборот. Вы хотите:

var newValue = parseInt(currentValue) + 1

Ответ 4

parseInt не работал у меня в IE. Поэтому я просто использовал + для переменной, которую вы хотите как целое.

var currentValue = $("#replies").text();
var newValue = +currentValue + 1;
$("replies").text(newValue);

Ответ 5

Что касается восьмеричного неправильного толкования .js - я просто использовал это...

parseInt(parseFloat(nv))

и после тестирования с ведущими нулями возвращается каждый раз с правильным представлением.

надеюсь, что это поможет.

Ответ 6

Ваш код должен выглядеть так:

<span id="replies">8</span>

var currentValue = $("#replies").text();
var newValue = parseInt(parseFloat(currentValue)) + 1;
$("replies").text(newValue);

Hacks N Tricks

Ответ 7

для увеличения на единицу вы можете сделать что-то вроде

  var newValue = currentValue ++;

Ответ 8

var month = new Date().getMonth();
var newmon = month + 1;
$('#month').html((newmon < 10 ? '0' : '') + newmon );

Я просто исправил вашу проблему в месяц, getMonth array начал с 0 до 11.

Ответ 9

Вы можете умножить переменную на 1, чтобы заставить JavaScript преобразовать переменную в число для вас, а затем добавить ее в другое значение. Это работает, потому что умножение не перегружается по мере добавления. Некоторые могут сказать, что это менее понятно, чем parseInt, но это способ сделать это, и он еще не упоминался.

Ответ 10

Просто добавьте знак плюса перед текстовым значением

var newValue = +currentValue + 1;