使用JavaScript进行计算

时间:2015-12-05 18:13:40

标签: javascript

为什么这不起作用? 我也是通过将结果分配回输入字段来做到这一点但是这不起作用,但仍然没有显示应该显示结果的警报..

    <script type="text/javascript">
    function calculate() {
       var calculateit=document.getElementById('disp');
       var pluscharacter=/+/;
       var matchplus=calculateit.search(pluscharacter);
       var inputlength=calculateit.length;
           if(matchplus!=-1 && matchplus!=0 matchplus!=inputlength) {
              answer=calculateit[0]+calculateit[1];
              alert("Your answer is: "+answer+" Is it?");
    }
    }
    </script>

3 个答案:

答案 0 :(得分:2)

您的if语句不是有效条件。尝试:

if(matchplus!=-1 && matchplus!=0 && matchplus!=inputlength)

答案 1 :(得分:1)

var calculateit = document.getElementById('disp');
var matchplus = calculateit.search(pluscharacter);

calculateitNode没有任何search()方法。

答案 2 :(得分:0)

你正在做你不需要做的事 - 只需拆分字符串。你还需要获得innerHTML - 这就是字符串。或者您可以从输入字段中获取“值”。我会修剪它以摆脱等式周围的空白区域,尽管parseInt也会照顾它。我也会把答案推到另一个div。这是一个jsfiddle:

https://jsfiddle.net/mckinleymedia/9ezky35v/2/

使用此HTML:

<h3>Equation</h3>
<div id="disp">12+12</div>
<h3>Answer</h3>
<div id="answer"></div>

您可以使用此脚本:

function calculate() {
  var calculateit = document.getElementById('disp').innerHTML.trim(),
      numbers = calculateit.split('+'),
      answerDiv = document.getElementById('answer');
  if ( numbers.length > 1 ) {
    answer = parseInt(numbers[0]) + parseInt(numbers[1]);
    answerDiv.innerHTML = "Your answer is: <b>" + answer + "</b>, Right?";
  } else {
    answerDiv.innerHTML = "I can't calculate that equation.";
  }
}
calculate();