2014-02-27 49 views
0

我正在創建計算器,當我單擊加號(+)運算符時,我將該值放在全局變量中,我從輸入字段獲得空白輸入字段,但我必須從第二次輸入的輸入中獲取價值,我必須保留另一個變量。那是我想要做的,但我不明白如何做到這一點。從一個函數獲取不同變量的兩倍不同的值

JS小提琴網址:http://jsfiddle.net/ravianexpert/9q6Xu/1

請幫我

var operation=""; 
var restValue=""; 
var lastValue=""; 

function operator(op){ 
    if(op == '+'){ 
     alert("Plus"); 
     restValue = Number(document.getElementById("display").value); 
     document.getElementById("display").value=""; 
     if(restValue == ""){ 
      alert("Zero"); 
     }else{ 
      lastValue = Number(document.getElementById("display").value); 
     } 
     //document.getElementById("display").value=restValue + lastValue; 
    } 
    console.log("restValue : " + restValue); 
    console.log("lastValue : " + lastValue); 
    console.log("operation : " + operation); 
    //lastValue = restValue.charAt(restValue.length - 1); 
    //console.log(lastValue) 
} 

<div class="container"> 
    <div id="lastCalculation"></div> 
    <input type="text" step="any" size="16" value="0" id="display" readonly /> 
    <div class="keypad"> 
     <span class="clear" onclick="reset()">C</span> 
     <span class="del" onclick="deleteValue()">Del</span> 
     <div class="clr"></div> 
     <span onclick="setNum(7)">7</span> 
     <span onclick="setNum(8)">8</span> 
     <span onclick="setNum(9)">9</span> 
     <span onclick="operator('/')">/</span> 
     <span onclick="setNum(4)">4</span> 
     <span onclick="setNum(5)">5</span> 
     <span onclick="setNum(6)">6</span> 
     <span onclick="operator('*')">*</span> 
     <span onclick="setNum(1)">1</span> 
     <span onclick="setNum(2)">2</span> 
     <span onclick="setNum(3)">3</span> 
     <span onclick="operator('-')">-</span> 
     <span onclick="setNum(0)">0</span> 
     <span onclick="setNum('.')">.</span> 
     <span class="isEqualTo" onclick="calculate()">=</span> 
     <span onclick="operator('+')">+</span> 
     <div class="clr"></div> 
    </div><!-- keypad --> 
</div><!-- container --> 
+0

未捕獲的ReferenceError:setNum沒有定義 – manta

+0

拉維準備演示小提琴請 –

+0

可以控制的我試圖在撥弄做一旦我完成讓你知道。 – Ravi

回答

1

更新2016年5月29日

陶然成一個偉大的answer by @yckart,即使用邪惡eval()Function構造函數,所以這裏是演示如何才能使計算正常工作的演示。

document.querySelector('button').addEventListener('click', function (e) { 
 

 
    var op = document.querySelector('input').value;   
 
    alert('Using new Function: ' + calculate(op) + '\nUsing eval(): ' + evil_eval(op)); // if default is used => 40.4 
 
    
 
}) 
 

 
function calculate(op){ 
 
    return new Function('return ' + op)(); 
 
} 
 

 
// added for test purpose, showing they return the same value 
 
function evil_eval(op) { 
 
    return eval(op); 
 
}
<input type="text" value="12/5*9+9.4*2"> <button>Calc</button>

源:Calculate string value in javascript, not using eval

+0

我叫你可以檢查js小提琴 http://jsfiddle.net/ravianexpert/9q6Xu/ – Ravi

+0

好吧,處理像「空」價值等問題,拉維將修復 – LGSon

+0

感謝@PellePenna你爲我做了,但我不必爲此使用「eval」,所以我在做,如果我得到任何解決方案,我會在這裏發佈。非常感謝你。 :) – Ravi

相關問題