簡體   English   中英

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+'');
});

使用parseFloat ,它解析一個字符串參數並返回一個浮點數。

var ans = parseFloat(num1)+parseFloat(num2);

根據你的例子,它是作為cocantenation運營商

$('.solve2').click(function(){
var num1 = parseInt($('#num').val());
var num2 = parseInt($('#number').val());
var ans = num1+num2;
alert(''+ans+'');
});

您可以使用另一個答案中所述的parseFloat而不是parseInt。

編輯:如下面的評論中所述,最好強制將字符串解釋為十進制數。 您可以通過添加radix參數來完成此操作。

var radix = 10; //decimal
var num1 = parseInt($('#num').val(), radix);
var num2 = parseInt($('#number').val(), radix);

將值從字符串轉換為數字。 +既是加法運算符又是cocantenation運算符。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators

很簡單,您必須將字符串轉換為整數。 使用parseInt

var num1 = parseInt($('#num').val());
var num2 = parseInt($('#number').val());

查看我的示例: JSFiddle示例

當你得到一個輸入元素的值 - 通過普通的JS或使用jQuery的.val() - 它返回一個字符串。 +的一個操作數是一個字符串而另一個是一個原語 - 即數字,字符串,布爾值, undefinednull - 然后另一個轉換為字符串並連接它們:

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);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM