为什么这不起作用? 我也是通过将结果分配回输入字段来做到这一点但是这不起作用,但仍然没有显示应该显示结果的警报..
<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>
答案 0 :(得分:2)
您的if语句不是有效条件。尝试:
if(matchplus!=-1 && matchplus!=0 && matchplus!=inputlength)
答案 1 :(得分:1)
var calculateit = document.getElementById('disp');
var matchplus = calculateit.search(pluscharacter);
calculateit
是Node
没有任何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();