初学JS计算器

时间:2017-11-13 10:31:08

标签: javascript html

我是JS的新世界,我正在尝试构建一个基本的计算器。 一切都工作得很好,但我有问题在计算器的结果屏幕上显示不同的元素。

当我点击1然后2时,1将消失,但我希望它留在我的计算中。

请帮忙!!



var displayText = document.getElementById('displayText');
var output = document.getElementById('output');
function add(){
  var two, plus, result;
  result = displayText.value;
  output.innerHTML = result;
}
function addOne() {
  var one = document.getElementById('one').value = 1;
      displayText.value = one;
}
function addTwo() {
  var two = document.getElementById('two').value = 2;
      displayText.value = two;
}
function addPlus() {
  var plus = document.getElementById('plus').value = "+";
      displayText.value = plus;
}

 <div>
  <div class="display">
    <input type="text" id="displayText" name="" value="">
    <p>The result of your calculation is: <span id="output"></span></p>
  </div>
  <div class="btn_wrap">
    <button id="one" onclick="addOne()">1</button>
    <button id="two" onclick="addTwo()">2</button>
    <button id="plus" onclick="addPlus()">+</button>
    <button id="" onclick="add()">Add</button>
  </div>
</div>
    		
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

每次调用其中一个函数时,都会重置文本字段的值。您不希望每次都设置新文本,而是希望将新文本附加到旧文本。所以替换

displayText.value = one;

使用:

displayText.value += one;

每次要附加文字。

Here是一个工作小提琴。

答案 1 :(得分:0)

您正在替换文本框中的现有值,因此它将消失 用下面的代码替换addOne()和addTwo()函数

function addOne() {
                var one = document.getElementById('one').value = 1;
                        displayText.value = displayText.value + one;
            }
            function addTwo() {
                var two = document.getElementById('two').value = 2;
                        displayText.value =displayText.value + two;
            }

答案 2 :(得分:0)

而不是=,您只需要使用+==将重置值,而+=将追加/连接值。并且您可以使用eval()来获取输入表达式的总和(在本例中)。

以下是适用于您的更新代码段:

var displayText = document.getElementById('displayText');
var output = document.getElementById('output');

function add() {
  var two, plus, result;
  result = displayText.value;
  output.innerHTML = eval(result);
}

function addOne() {
  var one = document.getElementById('one').innerText;
  displayText.value += one;
}

function addTwo() {
  var two = document.getElementById('two').innerText ;
  displayText.value += two;
}

function addPlus() {
  var plus = document.getElementById('plus').innerText ;
  displayText.value += plus;
}
<div>
  <div class="display">
    <input type="text" id="displayText" name="" value="">
    <p>The result of your calculation is: <span id="output"></span></p>
  </div>
  <div class="btn_wrap">
    <button id="one" onclick="addOne()">1</button>
    <button id="two" onclick="addTwo()">2</button>
    <button id="plus" onclick="addPlus()">+</button>
    <button id="" onclick="add()">Add</button>
  </div>
</div>