Как увеличить числовую строку на +1 с помощью Javascript / jQuery
31613 просмотра
8 ответа
У меня есть следующая переменная:
pageID = 7
Я хотел бы увеличить это число по ссылке:
$('#arrowRight').attr('href', 'page.html?='+pageID);
Таким образом, это выводит 7, я хотел бы добавить ссылку, чтобы сказать 8. Но если я добавлю +1:
$ ('# arrowRight'). attr ('href', 'page.html? =' + pageID + 1);
Я получаю следующий вывод: 1.html? = 71 вместо 8.
Как я могу увеличить этот номер до pageID + 1?
Автор: JayDee Источник Размещён: 13.11.2019 11:34Ответы (8)
29 плюса
Попробуй это:
parseInt(pageID, 10) + 1
Согласие с вашим кодом:
$('#arrowRight').attr('href', 'page.html?='+ (parseInt(pageID, 10) + 1));
Автор: antyrat
Размещён: 02.07.2012 01:51
4 плюса
+
оказывается действительным оператором как для строк, так и для чисел, который дает разные результаты, когда оба аргумента являются числовыми, а когда хотя бы один из них не является. Одним из возможных обходных путей является использование оператора, который имеет только числовой контекст, но дает такой же математический результат, как -
. some_var - -1
всегда будет таким же, как добавление 1 к some_var
числовому значению, независимо от того, является ли оно строковым или нет.
$('#arrowRight').attr('href', 'page.html?='+ (pageID - -1));
Автор: Oleg V. Volkov
Размещён: 02.07.2012 02:05
2 плюса
Это должно быть целое число, а не строка. Попробуй это:
pageID = parseInt(pageID)+1;
Тогда вы можете сделать
$('#arrowRight').attr('href', 'page.html?='+pageID);
Автор: ninja
Размещён: 02.07.2012 01:52
1 плюс
Все эти решения предполагают, что ваш номер, к которому вы хотите добавить 1, находится в пределах точности машины для целого числа. Так что, если у вас есть достаточно большое число в этой строке, когда вы добавляете 1, она не изменит число.
Например:
parseInt('800000000000000000', 10) + 1 = 800000000000000000
Поэтому я написал быстрое решение проблемы
function addOne(s) {
let newNumber = '';
let continueAdding = true;
for (let i = s.length - 1; i>= 0; i--) {
if (continueAdding) {
let num = parseInt(s[i], 10) + 1;
if (num < 10) {
newNumber += num;
continueAdding = false;
} else {
newNumber += '0';
}
} else {
newNumber +=s[i];
}
}
return newNumber.split("").reverse().join("");
}
Теперь, используя тот же пример выше
addOne('800000000000000000') + 1 = '800000000000000001'
Обратите внимание, что он должен оставаться в виде строки, иначе вы потеряете 1 в конце.
Автор: sookool99 Размещён: 30.05.2017 05:430 плюса
Просто, $('#arrowRight').attr('href', 'page.html?='+(pageID+1));
В скобках вычисление выполняется первым перед объединением строк.
Автор: Shikiryu Размещён: 02.07.2012 01:540 плюса
Просто измените порядок операций, заключив добавление в круглые скобки; если pageID уже является числом, parseInt () не требуется:
$('#arrowRight').attr('href', 'page.html?='+(pageID+1));
Автор: jackwanders
Размещён: 02.07.2012 01:54
0 плюса
Пока ваш pageID является числовым, этого должно быть достаточно:
$('#arrowRight').attr('href', 'page.html?='+(pageID+1));
Проблема, с которой вы столкнулись, заключается в том, что JavaScript обычно выполняется в порядке слева направо, поэтому строка слева делает +
его видимым как конкатенатор, поэтому он добавляет 7 к строке, а затем добавляет 1 к строке, включая 7.
0 плюса
let pageId = '7'
pageId++
console.log(pageId)
В настоящее время вам просто нужно pageID ++.
Автор: ericchan1336 Размещён: 23.06.2016 03:13Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- javascript Как автоматически изменить размер текстовой области с помощью Prototype?
- javascript Удаление элементов с помощью Array.map в JavaScript
- javascript Прокрутка переполненных DIV с помощью JavaScript
- javascript API Карт Google - проблемы с классом GLatLngBounds
- javascript Проверка десятичных чисел в JavaScript - IsNumeric ()
- jquery Экранирование строк HTML с помощью jQuery
- jquery Как сравнить HTML-сущность с JQuery
- jquery Есть ли функция "существует" для jQuery?
- jquery Как удалить все параметры в окне выбора, а затем добавить один вариант и выбрать его с помощью jQuery?
- jquery Получение идентификатора элемента, который вызвал событие
- jquery Как получить результат из модального диалога в JQuery
- jquery Удалите все классы, начинающиеся с определенной строки.
- jquery Как мне остановить эффект в jQuery
- jquery Как показать загрузочный счетчик в jQuery?