2016-05-14 97 views
0

我想讓它變成當你點擊按鈕「點擊這裏!」出現以下句子:「溫度是25攝氏度。」有人可以告訴我爲什麼我的代碼無法工作,我該如何解決它? 這裏是我的代碼:一個簡單的Javascript函數不能正常工作(將華氏溫度轉換爲攝氏溫度)

<p id="demo">This is my first paragraph</p> 

<button type="button" onclick="toCelsius(fahrenheit)">Click Here!</button> 

<script> 
    function toCelsius(fahrenheit) { 
     return (5/9) * (fahrenheit-32); 
     document.getElementById("demo").innerHTML = "The temperature is " + toCelsius(77) + " Celsius"; 
    } 
</script> 

+0

它失敗了,因爲'return'語句退出的功能 - 它從來沒有達到你設置的innerHTML下一行。 – skyline3000

+0

指出「爲什麼我的代碼失敗」的原因,有些錯誤? – RomanPerekhrest

回答

0

你放在return語句太早(return語句總是結束函數的執行,使得所顯示的溫度沒有運行的部分。)

return替換爲var c=並用其下的c代替toCelsius(77)

此外,您的按鈕事件處理程序說toCelsius(fahrenheit); fahrenheit未定義。如果您在頁面上添加<input id='fahrenheit' placeholder='temperature' />,則可以將按鈕的事件處理程序更改爲toCelsius(document.getElementById('fahrenheit').value)

:)就這樣,你有一個計算器!

實施例:

<p id="demo">This is my first paragraph</p> 

<input id='fahrenheit' placeholder='temperature' /> 
<button type="button" onclick="toCelsius(document.getElementById('fahrenheit').value)">Click Here!</button> 

<script> 
    function toCelsius(fahrenheit) { 
    var celsius (5/9) * (fahrenheit-32); 
    document.getElementById("demo").innerHTML = "The temperature is " + 
      celsius + " Celsius"; 
    } 
</script> 
+2

他也有太多的遞歸,在'toCelsius(77)'裏面調用同樣的函數。 – skobaljic

0

嘗試這一個。

<script> 
    function toCelsius(fahrenheit) { 
     return (5/9) * (fahrenheit-32); 
    }; 

    document.getElementById("demo").innerHTML = "The temperature is " + toCelsius(77) + " Celsius"; 

</script> 

,因爲你有一個return語句之前分配到一個innerHTML屬性您的代碼不起作用。

0

使用此代碼:

<script> 
function toCelsius(fahrenheit) { 
    return (5/9) * (fahrenheit-32); 
} 
document.getElementById("demo").innerHTML = "The temperature is " + toCelsius(77) + " Celsius"; 
</script> 
相關問題