Как добавить целочисленное значение с 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;