Как добавить целочисленное значение с помощью 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 ответов:
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);
var month = new Date().getMonth(); var newmon = month + 1; $('#month').html((newmon < 10 ? '0' : '') + newmon );
Я просто исправил вашу проблему месяца, getMonth массив начинается с 0 до 11.
вы можете умножить переменную на 1, чтобы заставить JavaScript преобразовать переменную в число для вас, а затем добавить ее к другому значению. Это работает, потому что умножение не перегружено, как сложение. Некоторые могут сказать, что это менее ясно, чем parseInt, но это способ сделать это, и он еще не упоминался.