val()如何返回Number?

gdo*_*ica 55 javascript string jquery numbers

在编写此描述的val文档中:

.val()返回:String,Number,Array

我试图得到一个Number,但它似乎string只返回,有什么我做错了吗?

$('#gdoron').val('1');

alert($('#gdoron').val() === '1'); // true 
alert(typeof $('#gdoron').val());  // string.

$('#gdoron').val(1);

alert($('#gdoron').val() === 1);  // false
alert(typeof $('#gdoron').val()); // string (not "number"!)
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="gdoron" />
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何val()按照文档说的那样返回数字?问题不在于如何解析字符串.

osa*_*oun 65

文本输入的value属性将始终返回一个字符串.您需要使用parseInt该值来获取整数:

parseInt($('#myInput').val(), 10);
Run Code Online (Sandbox Code Playgroud)

  • 我知道,我问如何`val`返回数字,因为文档说,而不是我怎么解析字符串. (24认同)

Ale*_* K. 26

一些HTML5元素,例如进度;

alert(typeof $("#prog").val()); // number 
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<progress value="50" max="100" id="prog"></progress>
Run Code Online (Sandbox Code Playgroud)

  • 实际上,它在Chrome上返回字符串"50". (3认同)
  • @gdoron:它说:*[...]表单元素**,例如**`input`,`select`和`textarea` [...]*.现在,我不是母语为英语的人,但我觉得这并不是一个详尽无遗的清单. (2认同)

Kla*_*sen 15

我已经做了一些快速的偷看,我想我有一个答案.如果查看val函数的实现,可以看到如果有一个所谓的val-hook,如果val-hook返回一个数字,那么该数字将从val函数原样返回.我发现这个讨论表明val-hooks主要用于插件来创建自定义控件,例如滑块等,其中"自然"返回值val可以是整数.希望这能为你提出一些问题.

  • 第一个链接坏了。 (2认同)