由于某些原因,当返回的值应该是3并将数字加在一起时,我的代码返回“0111”。jquery将输入值加在一起
有没有更好的方式来写这个,所以它增加了输入文本的值?
var p = $(".p").val();
var r = $(".r").val();
var d = $(".d").val();
var s = $(".s").val();
var checkability = p + r + d + s;
alert(checkability)
由于某些原因,当返回的值应该是3并将数字加在一起时,我的代码返回“0111”。jquery将输入值加在一起
有没有更好的方式来写这个,所以它增加了输入文本的值?
var p = $(".p").val();
var r = $(".r").val();
var d = $(".d").val();
var s = $(".s").val();
var checkability = p + r + d + s;
alert(checkability)
您正在连接需要将它转换为数字的字符串。 val()
以字符串形式返回数据,或根据您的类型明确使用parseInt(var, 10)
或parseFloat
。
简单的方法就是T选用unary + operator作为变量的前缀:
var checkability = +p + +r + +d + +s;
当然,最简单的事情是将字符串值强制到像整数:
var p = +$(".p").val();
var r = +$(".r").val();
var d = +$(".d").val();
var s = +$(".s").val();
你也可以使用更长的parseInt()
功能像var p = parseInt($(".p").val(), 10);
使用parseInt函数,使它们为整数
var p = parseInt($(".p").val(),10);
var r = parseInt($(".r").val(),10);
var d = parseInt($(".d").val(),10);
var s = parseInt($(".s").val(),10);
var checkability = p + r + d + s;
alert(checkability)
不要使用'parseInt'没有基数,加倍所以如果你正在处理用户输入。 – Quentin
@Quentin如果你想支持用户输入的十六进制和十进制怎么办? :) –
@BarbaraLaird - 然后,最好用一个清晰的单选按钮,用户界面处理:) – Quentin