val()如何返回Number?

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"!) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="gdoron" /> 

我的问题是: val()如何返回数字作为文档说? 问题不在于如何parsingstring。

一些HTML5元素,例如进度;

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

文本input的value属性将始终返回一个string。 你需要parseInt的值来得到一个整数:

 parseInt($('#myInput').val(), 10); 

我已经做了一些快速的偷看,我想我有一个答案。 如果你看一下val函数的实现,你可以看到如果有一个所谓的val-hook,如果val-hook返回一个数字,那么这个数字将被从val函数中原样返回。 我发现这个讨论表明,val-hooks主要被插件用来创build自定义控件,比如滑块等,其中val的“自然”返回值可以是一个整数。 希望这对你的问题有一些启示。