Есть много дополнительных вопросов по конкатенации в Интернете, но я не уверен, почему я получаю такое поведение. Я не пытаюсь «добавить» очевидные строки, и я пробовал parseInt
и parseFloat
по всем значениям безрезультатно. Мне нужно получить значение из атрибута data-page
, который будет содержать представление числового значения (я понимаю, вероятно, как неявная строка). Я замечаю, что пока получаю значение из атрибута data-page
, я не могу выполнять добавление переменных. Если я заменил его жестко закодированным 1
, все будет хорошо. Значения всегда должны быть целыми числами, но я попробовал parseFloat
, чтобы узнать, получилось ли у меня такое же поведение. Что я и сделал.Необычное добавление JavaScript в сочетании с конкатенацией
Некоторые примеры кода приведены ниже. Предположите, $("#pagination").attr('data-page').trim()
оценивает на 1
.
//Tried parseFloat
//datapage = 1 //This works as expected
dataPage = parseFloat($("#pagination").attr('data-page').trim()); //This does not work as expected
curPage = (parseFloat(dataPage) + parseFloat(1));
console.log(curPage); //Outputs '11' instead of '2'
//Tried parseInt
//datapage = 1 //This works as expected
dataPage = parseInt($("#pagination").attr('data-page').trim());
curPage = (parseInt(dataPage) + parseInt(1));
console.log(curPage); //Outputs '11' instead of '2'
Не могли бы вы также разместить HTML-код? Оба ваших примера работают отлично для меня. –
Я думаю, что код ** без ** 'parseFloat' и' parseInt' не работает. Это должно работать, во всяком случае, почему вы называете 'parseFloat' и' parseInt' 2 раза? –
@MarioAlexandroSantini Я вызываю parseFloat/parseInt дважды для избыточности, чтобы гарантировать, что я получаю то, что, я думаю, получаю. Обычно я не делал этого в производственном коде. –