用jQuery解析parseInt

Flo*_*y88 41 jquery

有人可以帮我弄清楚为什么以下jQuery代码不起作用?我想从用户输入返回一个整数.

var test = parseInt($("#testid"));
Run Code Online (Sandbox Code Playgroud)

谢谢你,再见!

jon*_*ohn 115

var test = parseInt($("#testid").val(), 10);
Run Code Online (Sandbox Code Playgroud)

你必须告诉它你想要的value目标输入.

而且,始终提供第二个参数(基数)parseInt.它试图过于聪明并且如果没有提供则自动检测它并且可能导致意外结果.

提供10假设你想要一个基地10号.

  • 调用`parseInt`时应始终指定基数. (12认同)

T.J*_*der 14

两个问题:

  1. 你正在将元素的jQuery包装器传递给你parseInt,这不是你想要的,因为它parseInt会调用toString它并返回"[object Object]".你需要使用val或者text某种东西(取决于元素是什么)来获得你想要的字符串.

  2. 你没有告诉parseInt它应该使用什么基数(数字基数),这会让你冒险进行奇数输入,在parseInt猜测使用哪个基数时给你奇怪的结果.

如果元素是表单字段,请修复:

//                               vvvvv-- use val to get the value
var test = parseInt($("#testid").val(), 10);
//                                    ^^^^-- tell parseInt to use decimal (base 10)
Run Code Online (Sandbox Code Playgroud)

如果元素是其他内容并且您想要使用其中的文本,请修复:

//                               vvvvvv-- use text to get the text
var test = parseInt($("#testid").text(), 10);
//                                     ^^^^-- tell parseInt to use decimal (base 10)
Run Code Online (Sandbox Code Playgroud)


pra*_*ann 5

var test = parseInt($("#testid").val());
Run Code Online (Sandbox Code Playgroud)

  • 调用parseInt时,应始终指定基数。 (2认同)