Как сформировать вычитание на строке
-
27-10-2019 - |
Вопрос
Помимо вставки нелегальных атрибутов в тег и аннулирование моего HTML, я никогда не делал то, что пытаюсь сделать раньше, и, скорее всего, выиграю от этого ответа в других областях моей работы.
Я думаю, что проблема в том, что я пытаюсь вычесть «1» из строки «$ (это) .attr ('num')»
Это может сработать, если я сначала преобразую «$ (this) .attr ('num')» в целое число, а затем вычитаю «1» из него.
Я открыт для любых других решений. Спасибо
//
$("#jumpPreviousButton").click(function(){
var imageNumber = $(this).attr('num');
$("#bgImageBox").css({
"background-image": "url(/galleryImages/worksImage"
+ imageNumber - 1
+".jpg)"
}).attr('num', imageNumber - 1);
return false;}
);
//
Решение
Используйте Parseint, но не используйте Parseint без Радикс
Функция parseint () анализирует строку и возвращает целое число.
Подпись есть parseInt(string, radix)
Итак, ответ на ваш вопрос:
var imageNumber = parseInt($(this).attr('num'), 10);
Второй аргумент заставляет Parseint использовать систему нумерации базовой десяти.
- Тип ввода по умолчанию для parseint () десятичный (база 10).
- Если число начинается в «0», предполагается, что оно является восьмиуровневым (базой 8).
- Если он начинается в «0x», предполагается, что это шестнадцатеричное
Почему? Если $ (this) .attr ('num') будет «08» parsint без Radix станет 0
Другие советы
Как вы говорите, преобразование его в Integer First поможет. Использовать parseInt()
функция для этого. :) (Или же parseFloat()
Если это номер плавающей запятой.)
Почему бы вам не использовать jQuery data()
функция вместо attr()
Чтобы добавить поле num в свой тег.
- Данные jQuery не лишают аннулирования вашей разметки
- Вы можете добавить любой тип данных в данные, поэтому не нужно использовать
parseInt
Например: HTML:
<html>
<body>
<p>hello</p>
</body>
</html>
JS:
$('p').data('foo',52);
var val = $('p').data('foo');
alert(val);
$('p').data('foo', val + 1);
alert($('p').data('foo'));
Это будет предупреждать 52
а потом 53
. Анкет Вы можете увидеть демонстрацию здесь.
(parseInt(imageNumber) - 1)
Если число является целым числом.
Функция parseint () - ваш друг;)
var imageNumber = parseInt($(this).attr('num'));