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