Jquery: + 无法正常工作
Jquery: + isn't working right
我正在制作一个有趣的计算器,但由于某种原因,除了添加之外,一切都有效。它不是将两个数字相加,而是将它们都写出来。例如,5 + 7 显示为 57。
正如我之前所说,-、/和 * 工作正常。我应该如何解决这个问题?
这是代码:
$('.solve2').click(function(){
var num1 = $('#num').val();
var num2 = $('#number').val();
var ans = num1+num2;
alert(''+ans+'');
});
$('.solve2').click(function(){
var num1 = parseInt($('#num').val());
var num2 = parseInt($('#number').val());
var ans = num1+num2;
alert(''+ans+'');
});
代替parseInt,你可以使用parseFloat,如另一个答案中所述。
编辑:如下面的注释中所述,最好强制将字符串解释为十进制数。您可以通过添加基数参数来执行此操作。
var radix = 10; //decimal
var num1 = parseInt($('#num').val(), radix);
var num2 = parseInt($('#number').val(), radix);
使用 parseFloat,它解析一个字符串参数并返回一个浮点数。
var ans = parseFloat(num1)+parseFloat(num2);
根据您的示例,它正在作为协力操作员工作
将值从字符串转换为数字。 +
既是加法算子,又是协进算子。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators
很简单,你必须将字符串转换为整数。使用 parseInt
var num1 = parseInt($('#num').val());
var num2 = parseInt($('#number').val());
查看我的示例:JSFiddle sample<</p>
当你通过纯JS或使用jQuery的.val()
获取输入元素的值时,它会以字符串的形式返回。当 +
的一个操作数是字符串而另一个是基元 - 即数字、字符串、布尔值、undefined
或null
- 然后另一个被转换为字符串并将它们连接起来:
4 + " four" === "4 four"; // true
false + " is now a string" === "false is now a string"; // true
等。
因此,从.val()
返回的值正在连接,并且您需要使用 parseFloat 将从 .val()
返回的字符串转换为数字:
$('.solve2').click(function(){
var num1 = parseFloat($('#num').val()),
num2 = parseFloat($('#number').val()),
ans = num1 + num2;
console.log(ans);
});
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)