我想从输入元素中获取值作为数字并使用jQuery计算它们。我正在尝试,但结果不是十进制的。如何解决这个问题?
HTML
<input name="test1" value="1.77" type="hidden" />
<input name="test2" value="1.23" type="hidden" />
的jQuery
var a = parseInt($( "input[name='test1']").val(), 10);
var b = parseInt($( "input[name='test2']").val(), 10);
alert( a + b ); // should be 3, but it is only 2
这是一个例子 - &gt; jsfiddle Example
答案 0 :(得分:3)
使用parseFloat
表示小数而不是parseInt
(这是整数)!
e.g。
var a = parseFloat($( "input[name='test1']").val(), 10);
var b = parseFloat($( "input[name='test2']").val(), 10);
var c = ( a + b );
$('#result').append( c );
答案 1 :(得分:3)
+
运算符是解析数字的快捷方式,包括整数和浮点数。
var a = +$("input[name='test1']").val();
var b = +$("input[name='test2']").val();
alert(a + b);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="test1" value="1.77" type="hidden" />
<input name="test2" value="1.23" type="hidden" />
&#13;
答案 2 :(得分:2)
使用parseFloat代替parseInt,如下所示
var a = parseFloat($("input[name='test1']").val());
var b = parseFloat($("input[name='test2']").val());
alert( a + b );
答案 3 :(得分:1)
function myFunction() {
var a = parseFloat("10") + "<br>";
var b = parseFloat("10.00") + "<br>";
var c = parseFloat("10.33") + "<br>";
var d = parseFloat("34 45 66") + "<br>";
var e = parseFloat(" 60 ") + "<br>";
var f = parseFloat("40 years") + "<br>";
var g = parseFloat("He was 40") + "<br>";
var n = a + b + c + d + e + f + g;
document.getElementById("demo").innerHTML = n;
}
答案 4 :(得分:1)
我发现我通过jQuery从输入中获取值并调用了很多parseFloat所以我创建了一个小的jQuery插件,将输入值作为数字返回,使用plus operator:
jQuery.fn.valNum = function () {
return +(this.val());
};