javascript - JS add操作返回char+char,不是int+int

标签 javascript jquery

$(function() {
    $("input[class$='m_value']").keyup(function() {

        var val1 = $('#v1').val();
        var val2 = $('#v2').val();
        var val3 = $('#v3').val();

        var total = val1+val2+val3;

        $( "#total" ).val( total );
    });
});

如果#v1=1 #v2=5

我会得到 15,而不是 6

为什么代码只是 char+char...?这不是 int+int。

最佳答案

因为您使用的是字符串。在 input 元素上使用时 val 的返回值始终是一个字符串。 (在具有multipleselect 元素上,它可以是null 或数组;如果您在其中没有任何元素的jQuery 集上调用它根本上,它将是 undefined)。

所以首先,使用一元 +,或 parseInt,或 parseFloat,或 Number.

使用一元 + 的示例(前三行的更改):

var val1 = +$('#v1').val();
var val2 = +$('#v2').val();
var val3 = +$('#v3').val();

var total = val1+val2+val3;

$( "#total" ).val( total ); // Implicit conversion to string here

This answer列出了各种转换为数字的方法及其各种特性。

关于javascript - JS add操作返回char+char,不是int+int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34024704/

相关文章:

javascript - 带有父样式属性的 jQuery if 条件

javascript - 在 iframe 中刷新页面

javascript - 使用 JQuery 动态设置复选框

php - 如何在cakephp中通过ajax提交jquery移动pop表单

javascript - 如果 <td> 具有最大的 int,在其 <tr> 中将 css 类添加到 <td> - jquery

javascript - 无法使用 javascript 设置属性

javascript - 用于显示导航的 React.js 滚动阈值

javascript - 如何通过 AJAX 调用创建部分 View

jquery - 使用 jQuery UI 在滚动区域中可拖动

javascript - Jquery : Can't find the bug, 可能有ID?