Как добавить целочисленное значение с помощью 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, что было бы правильным ответом. Что я делаю не так?

10 83

10 ответов:

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

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

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

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

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

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

var newValue = parseInt(currentValue) + 1

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

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

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

parseInt(parseFloat(nv))

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

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

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

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

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

Hacks N Tricks

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

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

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

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

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

var newValue = +currentValue + 1;