2014-05-08 58 views
-2

它不要求提示,你能告訴我爲什麼它不起作用嗎?我與JavaScript的nooby。這幾乎都是。爲什麼我的計算器不工作?

<html> 
<head> 
<link rel="stylesheet" type="text/css" href="style.css"> 
</head> 
<body> 
<h1>Justin's Experiment's</h1> 



<script> 
var ask = prompt("enter first number") 
var ksa = prompt("enter second number") 
var rew = prompt("Enter function") 
document.write(ask rew ksa) 
</script> 







</body> 



</html> 
+2

因爲你實際上沒有在任何地方使用加法運算符? –

+5

'document.write(ask rew ksa)'是無效的語法。附:在開發JavaScript *時,請始終打開開發工具/控制檯。 –

+0

檢查你的控制檯,它應該在這一行中有一個錯誤:document.write(ask rew ksa)。 你也沒有使用';' – davibq

回答

0

JSFIDDLE

這裏是一個辦法做到這一點:

HTML:

<p id="result"><p> 

的Javascript:

var lblResult = document.getElementById('result'); 

var number1 = prompt("enter first number"); 
var number2 = prompt("enter second number"); 
var operator = prompt("Enter function"); 

var result = calculate(number1, number2, operator); 

if (result === null) lblResult.innerText = "Invalid operator"; 
else lblResult.innerText = number1 + operator + number2 + " = " + result; 

function calculate(n1, n2, op) { 

    n1 = Number(n1); 
    n2 = Number(n2); 


    switch (op) { 
     case "+": 
     return n1 + n2; 
     case "-": 
     return n1 - n2; 
     case "/": 
     return n1/n2; 
     case "*": 
     return n1 * n2; 
     default: 
     return null; 
    } 
} 

你的文件撰寫並沒有任何「+」並沒有計算結果。爲了得到結果,函數calculate與2個數字和運算符一起傳遞。我們使用Number對Number進行轉換,以便將字符串轉換爲數字,如果運算符被支持,則結果將是方程的結果;如果運算符不存在,則結果爲null。然後,您可以輕鬆地將結果或消息打印到用戶!

我加上了id =「result」的<p>,因爲最好在標籤內打印結果,然後使用document.write。在JavaScript中,獲得html元素,你只需要做:

lblResult.innerText = "text"; 
-2

好吧讓我們看看你的代碼:

var ask = prompt("enter first number") 
var ksa = prompt("enter second number") 
var rew = prompt("Enter function") 
document.write(ask rew ksa) 

var lblResult = document.getElementById('result'); 

然後你就可以用更改文本

讓我們說我們插入5,然後+然後6

var ask = prompt("enter first number") 

這條線將產生ask = "5"

var ksa = prompt("enter second number") 

這條線將產生ksa = "+"

var rew = prompt("Enter function") 

這條線將產生rew = "6"

document.write(ask rew ksa) 

這條線將產生document.write("5" "+" "6")這些都是3個字符串和該語法是無效。

如果要全部打印出來的就是

,你需要將它們串聯:

document.write(ask + rew + ksa) 

這條線將生產document.write("5+6"),並簡單地打印字符串「5 + 6」,如果你想

javascript來計算這個表達式,你需要使用eval()

eval需要一個字符串並將其評估爲javascript代碼。

document.write(eval(ask + rew + ksa)) 

這條線將產生document.write(eval("5+6"))產生document.write("11")打印出字符串「11」(請注意,在打印時所有VARS在JavaScript充當字符串除非轉換爲數字,並且所有數字被轉換成字符串)

這裏是一個FIDDLE

+0

我可以知道爲什麼downvote? – Banana

+1

-1 - 永遠不要建議使用'eval'來完成計算。非常危險。最好使用'parseInt(input,radix)'或'parseFloat'。 –

+0

op沒有問如何做正確的,他問爲什麼他的代碼不起作用,這在我看來我已經很好地回答了。 – Banana