Может кто-нибудь помочь мне разобраться, почему следующий код jQuery не работает? Я хочу вернуть целое число из пользовательского ввода.
var test = parseInt($("#testid"));
Спасибо и до свидания!
Может кто-нибудь помочь мне разобраться, почему следующий код jQuery не работает? Я хочу вернуть целое число из пользовательского ввода.
var test = parseInt($("#testid"));
Спасибо и до свидания!
var test = parseInt($("#testid").val(), 10);
Вы должны сказать, что хотите, чтобы value
вводимого вами таргетинга.
А также всегда указывайте второй аргумент (radix) на parseInt
. Он пытается быть слишком умным и автоматически определять его, если он не предоставлен, и может привести к неожиданным результатам.
Предоставление 10
предполагает, что вы хотите получить номер базы.
Два вопроса:
Вы передаете оболочку jQuery этого элемента в parseInt
, что не то, что вы хотите, поскольку parseInt
вызовет toString
на нем и вернется "[object Object]"
. Вы должны использовать val
или text
или что-то (в зависимости от того, что представляет собой элемент), чтобы получите нужную строку.
Вы не говорите parseInt
, какой радикал (номер базы) он должен использовать, что ставит вас под угрозу нечетного ввода, давая вам нечетные результаты, когда parseInt
угадывает, какой радикал использовать.
Исправить, если элемент является полем формы:
// vvvvv-- use val to get the value
var test = parseInt($("#testid").val(), 10);
// ^^^^-- tell parseInt to use decimal (base 10)
Исправить, если элемент является чем-то другим, и вы хотите использовать текст внутри него:
// vvvvvv-- use text to get the text
var test = parseInt($("#testid").text(), 10);
// ^^^^-- tell parseInt to use decimal (base 10)
var test = parseInt($("#testid").val());