使用jQuery解析int

使用jQuery解析int,jquery,Jquery,有人能帮我弄清楚为什么下面的jQuery代码不起作用吗? 我想从用户输入返回一个整数 var test = parseInt($("#testid")); 谢谢你&再见 var test = parseInt($("#testid").val(), 10); 您必须告诉它您想要目标输入的值 另外,始终为parseInt提供第二个参数(基数)。它试图太聪明,如果不提供自动检测,可能会导致意外的结果 提供10假设您想要一个基数为10的数字。两个问题: var test = parseInt($(

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

var test = parseInt($("#testid"));
谢谢你&再见

var test = parseInt($("#testid").val(), 10);
您必须告诉它您想要目标输入的

另外,始终为
parseInt
提供第二个参数(基数)。它试图太聪明,如果不提供自动检测,可能会导致意外的结果

提供
10
假设您想要一个基数为10的数字。

两个问题:

var test = parseInt($("#testid").val());
  • 您正在将元素的jQuery包装传递到
    parseInt
    ,这不是您想要的,因为
    parseInt
    将调用
    toString
    ,然后返回
    “[对象]”
    。您需要使用或(取决于元素是什么)来获取所需的字符串

  • 您没有告诉
    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)
    

    请定义“不工作”。您期望发生什么,以及实际发生什么?在调用
    parseInt
    时,您应该始终指定基数。parseInt的兼容性如何?在调用
    parseInt
    时,您应该始终指定基数。