javascript - jQuery执行数学运算

标签 javascript jquery

HTML用户输入:

=110*200


jQuery的:

   $(document).on("change", ".calculator", function(){
        var value = $(this).val();
        if(value.charAt(0) == '='){
            var newval = value.slice(1);
            console.log(parseInt(newval));
        }
    })


输出:

110


有人可以告诉我如何使用此程序进行数学运算吗?我在哪里错了,为什么它不起作用?

最佳答案

之所以发生这种情况,是因为您从不评估表达式本身。您将字符串表达式转换为整数,并从表达式中获取可识别的整数部分,并在*字符处将其断开。


  用eval评估表达式,它将被计算。或者,您也可以使用Function construct as described in answer here评估此表达式。




$(document).on("change", ".calculator", function(){
        var value = $(this).val();
        console.log(value.charAt(0));
        if(value.charAt(0) == '='){
            var newval = value.slice(1);
            console.log(parseInt(eval(newval)));
            console.log(new Function('return ' + newval)());
        }
    })
    
  

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="calculator" type="text">

关于javascript - jQuery执行数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46967627/

相关文章:

php - 根据到当前 GPS 位置的距离重新排序 <select> 位置列表

javascript - JS和HTML中的交互式 slider

javascript - 有没有办法在 JavaScript 中测试循环引用?

javascript - elem.onclick 用于多个元素

javascript - 加载第三个Google图表时出现问题

使用 addClass 自定义 JQUery UI 元素

javascript - 滚动功能在Firefox上不起作用

javascript - 仅运行一次的Chrome扩展程序

javascript - 在复选框组循环中选择至少 1 个复选框

jquery - UL LI 内的 anchor 会破坏功能