Как добавить целочисленное значение с помощью javascript (jquery) к значению, которое возвращает строку? - PullRequest
86 голосов
/ 20 января 2009

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

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

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

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

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

81

1011 * тогда *

811

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

Ответы [ 11 ]

185 голосов
/ 20 января 2009

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

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

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

28 голосов
/ 16 мая 2011

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

var currentValue = parseInt($("#replies").text(),10);
25 голосов
/ 20 января 2009

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

var newValue = parseInt(currentValue) + 1
9 голосов
/ 22 января 2013

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

var currentValue = $("#replies").text();
var newValue = +currentValue + 1;
$("replies").text(newValue);
4 голосов
/ 22 января 2011

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

parseInt(parseFloat(nv))

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

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

2 голосов
/ 21 апреля 2011

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

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

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

Хаки Н Трюки

1 голос
/ 22 января 2015

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

1 голос
/ 09 июня 2012
var month = new Date().getMonth();
var newmon = month + 1;
$('#month').html((newmon < 10 ? '0' : '') + newmon );

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

1 голос
/ 15 ноября 2010

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

  var newValue = currentValue ++;
0 голосов
/ 23 марта 2019

Вы можете использовать метод parseInt () для преобразования строки в целое число в javascript

Вы просто измените код следующим образом

$("replies").text(parseInt($("replies").text(),10) + 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...