Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';我的jQuery是否返回等式的值?_Javascript_Jquery_Html_Tostring - Fatal编程技术网

Javascript 为什么';我的jQuery是否返回等式的值?

Javascript 为什么';我的jQuery是否返回等式的值?,javascript,jquery,html,tostring,Javascript,Jquery,Html,Tostring,我创建了一个简单的输入框,用户可以在其中输入一个简单的等式(没有变量) 例如,用户将输入 (5+6)*7-2 当用户点击“Calculate”(计算)按钮时,它会触发jQuery,jQuery使用.toString()转换输入,后者依次求解方程,然后将值放入元素中 我是新来的,所以如果我犯了非常严重的错误,我道歉。我希望我已经正确地解释了这一点 这是HTML <!DOCTYPE html> <html> <head> <meta charset=

我创建了一个简单的输入框,用户可以在其中输入一个简单的等式(没有变量)

例如,用户将输入

(5+6)*7-2

当用户点击“Calculate”(计算)按钮时,它会触发jQuery,jQuery使用.toString()转换输入,后者依次求解方程,然后将值放入元素中

我是新来的,所以如果我犯了非常严重的错误,我道歉。我希望我已经正确地解释了这一点

这是HTML

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Interview exercise</title>
    <script type="text/javascript" src="test.js"></script>
</head>
<body>
    <input name = "equation"/> = <span id="answer"/>
    <br/>
    <button>Calculate</button>
</body>
</html>

我不知道JavaScript函数。
非常感谢@nnnnnn和@DanielA.White之间的争论

关于
eval()
不安全:
这是另一个,在你的情况下,是不存在的

下面是HTML的计算函数:

$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
var answer=eval($(“input[name='equation'])).val();
$('#answer').html(answer);
});
});

= 


计算
字符串不是数学运算。您必须解析字符串并基本上实现自己的计算器。为了您的理智,我建议您在跳入jQuery并让StackOverflow握住您的手之前先学习JavaScript。
。toString()
将值转换为字符串。正如方法名所说的那样。要对多个输入执行数学计算,必须分别捕获这些数字。然后进行一些你自己的计算。。。确保您处理的是整数或浮点数,而不是字符串。@DanielA.White-对于此特定目的而言,
eval()
是否不安全?它将仅用于当前会话中刚输入的值,该值不会存储在任何位置,也不会在其他用户的设备上进行评估。(当然,实际上解析输入的字符串,而不仅仅是
eval
ing,如果用户键入了无效的内容,它将允许优雅的错误处理。)@DanielA.White-他们可以通过浏览器控制台做哪些他们还不能做的“任何事情”?再次注意,在这种情况下,用户所能做的“任何事情”都不会影响其他用户。如果用户不输入偏执,它有没有办法按照操作顺序运行?我现在正在处理一个括号问题。。。但不是这个。如果缺少括号,则评估失败,脚本中止。现在如果没有括号,那就完全是另一场游戏了!!我没有注意到
eval()
没有正确地“评估它”。。。我会检查我能做什么,但我会先发布我的实际改进(几分钟后)。嗯。从我刚做的第一个测试来看,
eval()
在没有括号的情况下正确地解释了操作顺序。我刚刚发布了我的编辑。。。我希望你会喜欢它!编写代码很有趣;)
$(document).ready(function() {
    $('button').click(function() {
        var answer = $("input[name=equation]").toString();
        $('#answer') = answer;
    });
});