我如何转换我的数学作品,所以它不仅仅返回数字和运算符
我尝试过:
<script>
function visResultat() {
var tal1 = document.getElementById("txtTal1").value;
var tal2 = document.getElementById("txtTal2").value;
var operator = document.getElementById("operator").value;
var resultatet = parseInt(tal1) + operator + parseInt(tal2);
resultat.innerHTML = resultatet;
}
</script>
现在它只返回文本框1&amp;中的数字。 2和从选择菜单中选择的操作员。关于它现在如何的例子:
42 + 23
关于我希望它看起来如何的示例。
65
我是全新的javascript - 谢谢,Anton
答案 0 :(得分:0)
实际执行此操作(不安全)的唯一方法是使用eval()
语句。 operator
只是一个字符串,它不像eval
的数学运算符。
var resultatet = eval(parseInt(tal1) + operator + parseInt(tal2));
安全但繁琐的方法是简单地使用if语句或开关来对输入执行正确的数学运算。
if (operator === "+") //do addition
if (operator === "*") //multiply
//etc
PS:在parseInt
函数上使用基数总是一个好主意。
答案 1 :(得分:0)
// Use a hashmap to determine how to "operate" on the inputs
function visResultat() {
var operatorList = {
"+":function(a,b){return a+b},
"-":function(a,b){return a-b},
"*":function(a,b){return a*b},
"/":function(a,b){return a/b}
}
var tal1 = document.getElementById("txtTal1").value;
var tal2 = document.getElementById("txtTal2").value;
var operator = document.getElementById("operator").value;
var resultatet = operatorList[operator](tal1,tal2);
resultat.innerHTML = resultatet;
}
答案 2 :(得分:0)
您尝试使用的运算符是一个字符串,因此JavaScript将“合并”您的变量,假设它旁边的所有变量都是字符串。自从你开始以来,我几乎不建议你创建一些像if或switch那样的决策声明。类似的东西:
function visResultat() {
var tal1 = document.getElementById("txtTal1").value;
var tal2 = document.getElementById("txtTal2").value;
var operator = document.getElementById("operator").value;
if (operator == '+') {
resultatet = parseInt(tal1) + parseInt(tal2);
}
else if( operator == '-'){
resultatet = parseInt(tal1) - parseInt(tal2);
}
else if(operator == '*'){
resultatet = parseInt(tal1) * parseInt(tal2);
}
else if(operator == '/'){
resultatet = parseInt(tal1) / parseInt(tal2);
}
resultat.innerHTML = resultatet;
}
有很多更好的方法可以做到这一点,但这可能是最容易理解的。